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
9k
ページャ専用DBのご提案
http://www.zusaar.com/event/5477013
mackee
July 04, 2014
Tweet
Share
More Decks by mackee
See All by mackee
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
14
5.4k
ワンバイナリWebサービスのススメ
mackee
10
8.1k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
120
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
980
perl for shell, awk and sed programmers
mackee
3
2.5k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
960
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
840
マイクロサービス化を利用した Goへの移行事例
mackee
0
980
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
5.5k
Other Decks in Technology
See All in Technology
ラスベガスの歩き方 2025年版(re:Invent 事前勉強会)
junjikoide
0
590
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
290
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
560
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
160
AIを使ってテストを楽にする
kworkdev
PRO
0
300
OpenCensusと歩んだ7年間
bgpat
0
240
Dify on AWS 環境構築手順
yosse95ai
0
170
プロファイルとAIエージェントによる効率的なデバッグ / Effective debugging with profiler and AI assistant
ymotongpoo
1
570
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
260
.NET 10のBlazorの期待の新機能
htkym
0
160
AI駆動で進める依存ライブラリ更新 ─ Vue プロジェクトの品質向上と開発スピード改善の実践録
sayn0
1
340
20251027_findyさん_音声エージェントLT
almondo_event
2
500
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
YesSQL, Process and Tooling at Scale
rocio
173
15k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
How GitHub (no longer) Works
holman
315
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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Ͱࣄ͍ͨ͠ਓͪ͜Βʙ