Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ページャ専用DBのご提案
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
mackee
July 04, 2014
Technology
5
9k
ページャ専用DBのご提案
http://www.zusaar.com/event/5477013
mackee
July 04, 2014
Tweet
Share
More Decks by mackee
See All by mackee
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
430
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
5
4.7k
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
14
6.3k
ワンバイナリWebサービスのススメ
mackee
10
8.4k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
330
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
1.1k
perl for shell, awk and sed programmers
mackee
3
2.7k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
1k
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
940
Other Decks in Technology
See All in Technology
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
190
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
370
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.6k
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
690
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
380
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
210
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
190
Agile Leadership Summit Keynote 2026
m_seki
1
650
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
160
プロポーザルに込める段取り八分
shoheimitani
1
580
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
Cosmos World Foundation Model Platform for Physical AI
takmin
0
950
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Faster Mobile Websites
deanohume
310
31k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The SEO Collaboration Effect
kristinabergwall1
0
350
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
220
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Prompt Engineering for Job Search
mfonobong
0
160
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
Six Lessons from altMBA
skipperchong
29
4.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Transcript
ϖʔδϟઐ༻DBͷ͝ఏҊ ϖʔδϟnight <1> 2014-07-04
ࣗݾհ • @mackee_w / Ϛίϐʔͱ͍͏໊લ • ໘ന๏ਓΧϠοΫͱ͍͏ձࣾ • ීஈPerl •
࠷ۙεϚϗήʔϜͷαʔόαΠυ୲
એͰ͢ • YAPC::Asia 2014ʹ2ͭτʔΫԠืͯ͠·͢ • ڵຯ͕͋Εͯϒͱ͔͍͍Ͷ͍ͩ͘͞ʙ • Perl meets Real
World ʙϋʔυΣΞͱ࿀ʹམͪΔPerlͷ͍ํʙ • http://yapcasia.org/2014/talk/show/103a434e-ec02-11e3-bd6d-c7a06aeab6a4 • झຯ։ൃͷͨΊͷΫϥυ/VPS׆༻ज़ • http://yapcasia.org/2014/talk/show/adfd5cb8-01c1-11e4-9357-07b16aeab6a4
None
ҋ෧͡ࠐΊΔ
Έͳ͞Μϖʔδϟ࣮ͯ͠· ͔͢ʁ
ྫ͑ϖʔδϟͷதͰ͜ΜͳΫ ΤϦͰҜࢠΛ͛ΒΕͨ͜ͱ ͋Γ·ͤΜ͔ʁ ˞ฐࣾք۾ͰΫιΫΤϦͱ͔ϩάΛEFWOVMMʹ ࣺͯΔͱ͔͢ΔͱҜࢠ͕ඈΜͰ͘ΔͱݴΘΕ͍ͯ·͢
SELECT * FROM t1 WHERE hoge_id = 1 ORDER BY
created_at ASC LIMIT 100000, 10;
LIMIT 100000, 1
ؒҧ͍ͳ͘अѱͰ͋Δ͕ ͜ΕΛ͏·͍͜ͱ෧͡ࠐΊΔʹ
pagerd ϖʔδϟઐ༻σʔλϕʔε
σϞ͠·͢
pagerdͷػೳ • ΩʔʹΑͬͯιʔτ͞Εͨ݁Ռͷอ࣋ • /offset/<n>/limit/<m>ͰͷཁૉͷΞΫηε ͚ͩͰ͢
͍ͬͯΔ͜ͱ • όοΫΤϯυʹLevelDBΛ༻ • ΩʔͰউखʹιʔτ͞ΕΔ͠ϝϞϦʹΓؾ ͳΒແͯͦͦ͘͜͜ؤுΕΔ͠ศར • γʔέϯγϟϧϦʔυ͕͔ͳΓ͍ ࢀߟ: LevelDBೖ
(جຊฤ) - from scratch http://yosuke-furukawa.hatenablog.com/entry/2014/05/05/095207
͍ͬͯΔ͜ͱ • offsetʹ10000ͱ͔ࢦఆ͞ΕͨΒ্͔Β10000 ·Ͱಓʹseek͔ͯͦ͜͠Βlimitग़͢ʂ
͍ͬͯΔ͜ͱ • offsetʹ10000ͱ͔ࢦఆ͞ΕͨΒ্͔Β10000 ·Ͱಓʹseek͔ͯͦ͜͠Βlimitग़͢ʂ ͬͯΔͱ͔ͬͨͷͰ Ωϟογϡ͠·ͨ͠
Ωϟογϡํ๏ • Ұ൪ॳΊʹ10000ͱ͔͖ͨΒఘΊͯ10000· ͰᢞΊΔ -> O(n) • ͦͷͱ͖ʹ10000ͷҐஔͷΩʔΛΩϟογϡ • ࣍ʹ10010ͱ͖ͨΒҰؾʹ10000ͷͱ͜Ζ·
ͰSeek͔ͯͦ͜͠ΒͳΊΔ
σϝϦοτ • Ωϟογϡ͢ΔΩʔ͕૿͍͑ͯ͘ͱߋ৽ίετ ͕ߴ͘ͳΔ • expire͢Δͱ͔ೱ͕ҰఆʹͳΔΑ͏ʹ͑Δ ͱ͔ -> ࣮͍ͯ͠ͳ͍ʂ •
ߋ৽͍ͯ͠ΔؒʹΞΫηε͢Δͱഁͦ͠͏ • LevelDBΞτϛοΫߋ৽͑ΔͷͰͦΕͰ
ଞʹΓ͔ͨͬͨ͜ͱ • ձࣾͰʮOFFSET 100000ͱ͔Γ͍ͨΜͰ͢ ͚ΕͲʂʯͬͯݴ͏ͱMySQLͷιʔεΛಡΉ ͷ͕झຯͷਓͱ͔ࢄΞϧΰϦζϜʹৄ͍͠ ਓͱ͔͕ू·͖ͬͯͯศར • ͦͷதͰʮπϦʔͰͰཧ͢ΔͷͲ͏Αʯ ͱ͍͏ҙݟ͕͋ͬͨ
πϦʔͰͱ
πϦʔͰͱ
πϦʔͰͱ
mackee / pagerd https://github.com/mackee/pagerd
·ͱΊ • σʔλϕʔεΛ࣮͢Δ͍ͬͯ͏ͷΛΔͱ OFFSETΛΔͷ͕͍͔ʹΊΜͲ͍͔͔ͬͯ͘͞ ྑ͍ • ͋ͱ໘ന๏ਓΧϠοΫͰαʔόαΠυΤϯδχ ΞΛืू͓ͯ͠Γ·͢ • ձࣾͷࣗࣾαʔϏεͷ։ൃݴޠɺPerl͔ΒGoʹҠ
ߦ͠·͢ɻGoͰࣄ͍ͨ͠ਓͪ͜Βʙ