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
mackee
July 04, 2014
Technology
5
8.9k
ページャ専用DBのご提案
http://www.zusaar.com/event/5477013
mackee
July 04, 2014
Tweet
Share
More Decks by mackee
See All by mackee
ワンバイナリWebサービスのススメ
mackee
10
8k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
120
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
840
perl for shell, awk and sed programmers
mackee
2
2.5k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
800
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
690
マイクロサービス化を利用した Goへの移行事例
mackee
0
820
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
5k
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
2k
Other Decks in Technology
See All in Technology
モダンフロントエンド 開発研修
recruitengineers
PRO
6
3k
会社にデータエンジニアがいることでできるようになること
10xinc
9
1.6k
「AI2027」を紐解く ― AGI・ASI・シンギュラリティ
masayamoriofficial
0
130
そのコンポーネント、サーバー?クライアント?App Router開発のモヤモヤを可視化する補助輪
makotot
4
740
見てわかるテスト駆動開発
recruitengineers
PRO
6
1.8k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.6k
Figma + Storybook + PlaywrightのMCPを使ったフロントエンド開発
yug1224
10
3.2k
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
150
『FailNet~やらかし共有SNS~』エレベーターピッチ
yokomachi
1
150
JuniorからSeniorまで: DevOpsエンジニアの成長ロードマップ
yuriemori
2
300
第4回 関東Kaggler会 [Training LLMs with Limited VRAM]
tascj
12
1.9k
スプリントレトロスペクティブはチーム観察の宝庫? 〜チームの衝突レベルに合わせたアプローチ仮説!〜
electricsatie
1
100
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
329
21k
Docker and Python
trallard
45
3.5k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
A better future with KSS
kneath
239
17k
Become a Pro
speakerdeck
PRO
29
5.5k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
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Ͱࣄ͍ͨ͠ਓͪ͜Βʙ