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
実践ハイパフォーマンスMySQL読書会 第1回資料
Search
S.Nishio
May 22, 2014
Education
480
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
実践ハイパフォーマンスMySQL読書会 第1回資料
S.Nishio
May 22, 2014
More Decks by S.Nishio
See All by S.Nishio
数字を使った計画設定とふりかえりができる組織づくり (Startup Issue Gym #1)
nishiodens
0
760
vividgarden_bit_valley_2018_subtrack2.pdf
nishiodens
0
130
Angular2はじめました
nishiodens
0
570
Other Decks in Education
See All in Education
Throw Yourself In! - How I've learned English and What I'm Facing
georgeorge
1
210
Soluciones al examen de Geografía 2026. JULIO (Convocatoria Extraordinaria)
juanmartin2026
1
17k
[2026前期火5] 論理学(京都大学文学部 前期 第5回)「 ならばの問題演習・proof net・かつの規則」
yatabe
0
380
輻射安全管理系統2.0暨輻防e++學園平台說明會
aecrp
0
1.9k
Gitがない時代 インターネットがない時代の 開発話
sapi_kawahara
0
350
[2026前期火5] 論理学(京都大学文学部 前期 第4回)「 ならば(→)の導入と証明ネット」
yatabe
0
530
Visionary Initiative: Future Intelligence — Laying the foundations for the future of science, intelligence, and society | Science Tokyo
sciencetokyo
PRO
0
190
AIってなぁに?
kenichiota0711
0
630
Estimating Group × Time Interaction in Scale-Transformed CEFR-J Self-Assessment Scores: A Case in Study-Abroad Research
uranoken
0
160
[2026前期火5] 論理学(京都大学文学部 前期 第13回)「走って、止まって、積み上がる」
yatabe
0
160
0513
cbtlibrary
0
250
自己紹介 / who-am-i
yasulab
6
7.1k
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
440
WENDY [Excerpt]
tessaabrams
11
39k
Context Engineering - Making Every Token Count
addyosmani
9
1k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
360
Six Lessons from altMBA
skipperchong
29
4.4k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The browser strikes back
jonoalderson
0
1.5k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
890
Transcript
ୈճ࣮ફϋΠύϑΥʔϚϯε.Z42-ಡॻձ ୈҰষʮ.Z42-ͷΞʔΩςΫνϟͱྺ࢙ʯ ඌ৻༞ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ
ষͷ֓ཁ • MySQLΛ࠷େݶʹ׆༻͢ΔͨΊʹ – MySQLͷઃܭΛཧղ͢Δࣄ͕ॏཁ • MySQLαʔόΞʔΩςΫνϟΛ၆ᛌతʹଊ͑Δ – ετϨʔδΤϯδϯ͝ͱͷҧ͍Կ͔?
– ͦ͏ͨ͠ҧ͍͕ͳͥॏཁͳͷ͔? • MySQLྺ࢙తͳഎܠͱϕϯνϚʔΫʹ͍ͭͯ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 2 / 27
.Z42-ͷཧΞʔΩςΫνϟ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 3 / 27
ଓ / εϨουॲཧ ΫΤϦ Ωϟογϡ ύʔαʔ ΦϓςΟϚΠβ ΫϥΠΞϯτ ετϨʔδΤϯδϯ MySQLಛ༗ͷͷͰͳ͍αʔϏεؚΉ ଓॲཧɺೝূɺηΩϡϦςΟ MySQLͷத෦ ΫΤϦղੳɺੳɺ࠷దԽɺΩϟογϡɺ ΈࠐΈؔ(ɺ࣌ؒɺࢉज़ԋࢉɺ ҉߸Խ) ͷίʔυؚ͕·ΕΔ ετΞυɺτϦΨɺϏϡʔ͜ͷϨϕϧ ʹଐ͍ͯ͠Δ MySQLʹ֨ೲ͞ΕΔͯ͢ͷσʔλ อଘɺऔಘΛड͚࣋ͭ αʔόετϨʔδΤϯδϯAPIΛ௨͡ ͯΓͱΓΛ͢Δ ϨΠϠ1 ϨΠϠ2 ϨΠϠ3
ฒߦੑͷ੍ޚ • αʔόϨϕϧͱετϨʔδΤϯδϯϨϕϧͷೋͭͰ ੍ޚ͢Δඞཁ͋Γ – ฒߦੑͷ੍ޚॏཁͳςʔϚ͕ͩɺৄࡉऔΓ্͛ͳ͍ • ϩοΫ – ಡΈऔΓϩοΫ(ڞ༗ϩοΫ)
– ॻ͖ࠐΈϩοΫ(ഉଞϩοΫ) • ϩοΫͷཻ – ςʔϒϧϩοΫ • ͬͱΦʔόʔϔου͕͍ – ߦϩοΫ • ฒߦੑ͕࠷ߴ͘ɺΦʔόʔϔου࠷ߴ͍ • αʔόͰͳ͘ετϨʔδΤϯδϯͰ࣮͞Ε͍ͯΔ – InnoDBXtraDBͳͲͷετϨʔδΤϯδϯͰར༻Մೳ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 4 / 27 ಡΈऔΓྃ·ͰσʔλΛมߋ͠ͳ͍ͰͶ ϑϥάΛཱͯΔ Ϧιʔεͷಉ࣌ߋ৽Λ͙ͨΊͷϩοΫ
τϥϯβΫγϣϯ"$*% • ΞτϛοΫੑ(Atomicity) – All or nothing
– τϥϯβΫγϣϯશମͷॲཧ͕ͯྃ͢͢Δ͔/͠ͳ͍͔ • Ұ؏ੑ (Consistency) – Ұ؏ͨ͠ঢ়ଶ͔ΒҰ؏ͨ͠ঢ়ଶͷભҠͱͳΔ͜ͱ • τϥϯβΫγϣϯ్தͰΫϥογϡͯ͠ɺDBͷมߋ͕ແ͍͜ͱ • ੑ(Isolation) – τϥϯβΫγϣϯ్த݁ՌଞτϥϯβΫγϣϯ͔Βݟ͑ͳ͍͜ͱ • Ӭଓੑ(Durability) – ίϛοτ͞ΕͨτϥϯβΫγϣϯͷมߋ֬ఆ͞ΕΔ͜ͱ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 5 / 27
Ϩϕϧ • ੑͷϨϕϧΛઃఆͰ͖Δ – Ϩϕϧ͕͍΄Ͳฒߦੑ͕ߴ͘ͳΓΦʔόʔϔου͕ݮΔ • READ UNCOMMITTED –
ίϛοτ͞Ε͍ͯͳ͍τϥϯβΫγϣϯͷ݁Ռ͕ଞτϥϯβ Ϋγϣϯ͔Βݟ͑Δ • READ COMMITTED (ଟ͘ͷDBͷσϑΥϧτ) – ৗʹ࠷৽ͷίϛοτࡁΈσʔλΛಡΈऔΔ • REPEATABLE READ (MySQLσϑΥϧτ) – τϥϯβΫγϣϯ࣮ߦதɺಡΈऔΓରͷσʔλ͕ ଞτϥϯβΫγϣϯʹΑͬͯมߋ͞Εͳ͍ • SERIALIZABLE – ϊϯϦϐʔλϒϧϦʔυɺϑΝϯτϜϦʔυͷ͕ ൃੜ͠ͳ͍ – σʔλͷ҆ఆੑ֬อ͞ΕΔ͕ɺฒߦੑԼ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 6 / 27 Ϩϕϧߴ Ϩϕϧ
3&"%$0..*55&%ͷ • ϊϯϦϐʔλϒϧϦʔυ / ϑΝϯτϜϦʔυ͕ൃੜ • ϊϯϦϐʔλϒϧϦʔυͱ? 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@
TIMࣾ 7 / 27 Transaction A Start; 1. A ͞ΜͷߴΛSELECT (100ԁ) 3. A͞ΜͷߴΛ200ԁʹ͢Δ 5. COMMIT; Transaction B Start; 2. A ͞ΜͷߴΛSELECT (100ԁ) 4. A͞ΜͷߴΛSELECT (100ԁ) 6. A͞ΜͷߴΛSELECT (200ԁ!!) 7. COMMIT; ৗʹίϛοτࡁΈͷ࠷৽σʔλΛ ಡΈऔΔͨΊൃੜ
3&1&"5"#-&3&"%ͷ • ϑΝϯτϜϦʔυ͕ൃੜ – ˞ MySQLͰʢผͷΈʹΑΓʣϑΝϯτϜϦʔυൃੜ͠ͳ͍ • ϑΝϯτϜϦʔυͱ?
2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 8 / 27 Transaction A Start; 1. Select * from users; (A͞Μ) 3. UsersςʔϒϧʹB͞ΜՃ 5. COMMIT; Transaction B Start; 2. Select * from users; (A͞Μ) 4. Select * from users; (A͞Μ) 6. Select * from users; (A͞ΜɺB͞Μ) ͖ͬ͞·Ͱ͍ͳ͔ͬͨB͞Μ͕ ಥવݱΕͨ
"/4*42-Ϩϕϧ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 9 / 27
Ϩϕϧ μʔςΟʔ Ϧʔυ ϊϯϦϐʔλ ϒϧϦʔυ ϑΝϯτϜ Ϧʔυ ಡΈऔΓϩο Ϋ READ UNCOMMITTED YES YES YES NO READ COMMITTED NO YES YES NO REPEATABLE READ NO NO YES NO SERIARIZABLE NO NO NO YES
σουϩοΫ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 10 / 27
A͞Μͷ༬ۚ B͞Μͷ༬ۚ Transaction A Transaction B ߋ৽͢ΔͨΊϩοΫ ղআͪ ߋ৽͢ΔͨΊϩοΫ ղআͪ Transaction A/B A, B͞Μͷ༬ۚใΛߋ৽͍ͨ͠
ςʔϒϧΛߋ৽͢Δͱ ϥϯμϜI/O͕ൃੜ τϥϯβΫγϣϯϩά 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 11 /
27 ͜͜ͰΫϥογϡͯ͠ɺτϥϯβΫγϣϯϩά͔Β෮چՄೳ • τϥϯβΫγϣϯޮԽʹཱͭ • τϥϯβΫγϣϯϩάΛͬͨϩάઌߦॻ͖ࠐΈ 1. σΟεΫ্ͷςʔϒϧΛߋ৽͢ΔͷͰͳ͘ɺϝϞϦ্ͷ ίϐʔΛมߋ͢Δ • ඇৗʹߴͳॻ͖ࠐΈ͕Մೳ 2. ετϨʔδΤϯδϯมߋهΛτϥϯβΫγϣϯϩάʹॻ͖ ࠐΉ • σΟεΫ্ͷσʔλͳͷͰӬଓੑ͋Γ • γʔέϯγϟϧͳI/O͕༻͞ΕΔ (ൺֱతߴʹߋ৽͞ΕΔ) 3. λΠϛϯάΛݟܭΒͬͯɺσΟεΫ্ͷςʔϒϧΛߋ৽ มߋΛσΟεΫʹ2ճॻ͖ࠐΉ͜ͱʹͳΔ
.Z42-ͷτϥϯβΫγϣϯ • σϑΥϧτAUTO COMMIT – τϥϯβΫγϣϯΛ໌ࣔ͠ͳ͍ݶΓɺͦΕͧΕผͷ τϥϯβΫγϣϯͱ࣮ͯ͠ߦ͞ΕΔ •
ෳετϨʔδΤϯδϯͷซ༻ – τϥϯβΫγϣϯαʔόϨϕϧͰཧͤͣɺ࣮ ετϨʔδΤϯδϯʹ͞Ε͍ͯΔ – ෳΤϯδϯؒͰ1ͭͷτϥϯβΫγϣϯΛுΔࣄෆՄೳ • ҉తͳϩοΫͱ໌ࣔతͳϩοΫ – InnoDB2૬ͷϩοΫϓϩτίϧΛར༻ • τϥϯβΫγϣϯத͍ͭͰϩοΫऔಘՄೳ͕ͩɺCOMMIT, ROLLBACK͢Δ·Ͱղ๏͞Εͳ͍ • ϩοΫͯ͢ͷϩοΫΛಉ࣌ʹղ์͢Δ – ໌ࣔతͳϩοΫ ( SELECT … FOR UPDATE) 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 12 / 27
Ϛϧνόʔδϣϯͷฒߦੑ੍ޚ .7$$ • MySQLͷετϨʔδΤϯδϯͷ΄ͱΜͲߦϩοΫΛ Θͳ͍ • ߦϩοΫͱMVCCΛΈ߹Θͤͯ༻͍ͯ͠Δ –
MVCCOracle, PostgreSQL ͳͲͰ࣮͞Ε͍ͯΔ • MVCCREPEATABLE READ, READ COMMITTEDʹͷΈରԠ • MySQL REPEATABLE READͰϑΝϯτϜϦʔυ͕ൃੜ͠ͳ ͍ͷɺMVCCͷ͓͔͛ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 13 / 27
.7$$ͱ • MVCCΛ͏ͱɺෳτϥϯβΫγϣϯ͕ಉ͡ςʔϒϧ ͷҟͳΔσʔλΛಉ࣌ʹࢀরͰ͖Δ • InnoDBͰɺߦ͝ͱʹӅΕͨೋͭͷΛ֨ೲ – ߦ͕࡞͞ΕͨλΠϛϯά
– ߦ͕ظݶΕ(আ͞ΕͨʣλΠϛϯά • ্هʹೖΕΔɺ֤Πϕϯτ͕ൃੜͨ࣌͠ͷγεςϜ όʔδϣϯ൪߸ – τϥϯβΫγϣϯ͕։࢝͞ΕΔͨͼʹ൪߸ΠϯΫϦϝϯτ͞ ΕΔ – ΫΤϦͦΕͧΕ֤ߦͷόʔδϣϯ൪߸ΛτϥϯβΫγϣϯͷ όʔδϣϯͱൺֱ͢Δඞཁ͕͋Δ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 14 / 27
.7$$ͱr*OTFSU࣌ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 15 / 27
ߦA ߦB ߦC -‐ 1 1 1 Ճόʔδϣϯ আόʔδϣϯ -‐ -‐ ߦD 2 -‐ τϥϯβΫγϣϯA (version: 2) ͕σʔλD ΛՃ Trn A InnoDBݱࡏͷγεςϜ όʔδϣϯ൪߸(2) Λ৽͍͠ߦʹه͢Δ
.7$$ͱr6QEBUF࣌ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 16 / 27
ߦA ߦB ߦC -‐ 1 1 1 Ճόʔδϣϯ আόʔδϣϯ -‐ -‐ ߦD2 3 -‐ τϥϯβΫγϣϯA (version: 3) ͕σʔλD Λमਖ਼ ʢσʔλΛߦD͔ΒߦD2 ʹߋ৽) Trn A ৽͍͠ߦͷόʔδϣϯʹରԠ͢Δ γεςϜόʔδϣϯ൪߸Λͬͯɺ ߦͷ৽͍͠ίϐʔΛॻ͖ग़͢ ݹ͍ߦͷআόʔδϣϯͱͯ͠γ εςϜόʔδϣϯ൪߸Λॻ͖ग़͢ ߦD 2 3
.7$$ͱr4FMFDU࣌ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 17 /
27 ߦA ߦB ߦC -‐ 1 1 1 Ճόʔδϣϯ আόʔδϣϯ -‐ -‐ ߦD2 3 -‐ τϥϯβΫγϣϯA (version: 4) ͕SELECT * from table; Trn A 1. τϥϯβΫγϣϯͱಉ͔͡ɺͦΕҎ લͷόʔδϣϯߦΛݕࡧ͠ͳ͚Εͳ Βͳ͍ 2. আόʔδϣϯະఆٛͰ͋Δ͔ɺ τϥϯβΫγϣϯͷόʔδϣϯΑΓ ৽͍͠όʔδϣϯͰແ͚ΕͳΒͳ͍ ্ه2ͭΛݟͨͨ͠σʔλΛฦ͢ ߦD 2 3 σʔλɺA, B, C, D2 ͕ͱΕΔ
.7$$ͱr4FMFDU࣌ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 18 /
27 ߦA ߦB ߦC -‐ 1 1 1 Ճόʔδϣϯ আόʔδϣϯ -‐ -‐ ߦD2 3 -‐ τϥϯβΫγϣϯA (version: 2) ͕SELECT * from table; Aͷ్தͰτϥϯβΫγϣϯB(version:3 )͕σʔλߋ৽, COMMIT Trn A ߦD 2 3 σʔλɺA, B, C, D ͕ͱΕΔ Trn B ߦDΛߦD2ʹߋ৽ 1. τϥϯβΫγϣϯͱಉ͔͡ɺͦΕҎલͷ όʔδϣϯߦΛݕࡧ͠ͳ͚ΕͳΒͳ͍ 2. আόʔδϣϯະఆٛͰ͋Δ͔ɺτϥϯ βΫγϣϯͷόʔδϣϯΑΓ৽͍͠όʔ δϣϯͰແ͚ΕͳΒͳ͍ ϊϯϦϐʔλϒϧϦʔυ͕ൃੜ͠ͳ͍!!
.7$$ͱr4FMFDU࣌ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 19 /
27 ߦA ߦB ߦC -‐ 1 1 1 Ճόʔδϣϯ আόʔδϣϯ -‐ -‐ τϥϯβΫγϣϯA (version: 2) ͕SELECT * from table; Aͷ్தͰτϥϯβΫγϣϯB(version:3 )͕σʔλInsert, COMMIT Trn A ߦD 3 -‐ σʔλɺA, B, C ͕ͱΕΔ Trn B ߦDΛInsert 1. τϥϯβΫγϣϯͱಉ͔͡ɺͦΕҎલͷ όʔδϣϯߦΛݕࡧ͠ͳ͚ΕͳΒͳ͍ 2. আόʔδϣϯະఆٛͰ͋Δ͔ɺτϥϯ βΫγϣϯͷόʔδϣϯΑΓ৽͍͠όʔ δϣϯͰແ͚ΕͳΒͳ͍ ϑΝϯτϜϦʔυ͕ൃੜ͠ͳ͍!!
.Z42-ͷετϨʔδΤϯδϯ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 20 / 27
• ֤σʔλϕʔεΛͦͷσʔλσΟϨΫτϦͷαϒσΟϨ ΫτϦͱͯ͠ϑΝΠϧγεςϜʹ֨ೲ • ςʔϒϧ࡞ͷࡍɺ.frm֦ுࢠ͕͍ͭͨϑΝΠϧʹςʔ ϒϧఆٛΛอଘ • ςʔϒϧʹؔ͢ΔใɺSHOW TABLE STATUSͰ֬ೝ
4)085"#-&45"564 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 21 / 27
*OOP%#Τϯδϯ • ྺ࢙লུ • InnoDB֓ཁ – MVCCΛ͍ߴ͍ฒߦੑΛ࣮ݱɺϨϕϧશ࣮ͯ – σϑΥϧτͰREPEATABLE
READϨϕϧ • ϑΝϯτϜϦʔυΛ્ࢭ͢ΔωΫετΩʔϩοΫΛద༻ – ςʔϒϧΫϥελԽΠϯσοΫεʹج͍ͮͯߏங͞ΕΔ • ΫϥελԽΠϯσοΫε5ষʹͯͰͯ͘Δ • ΠϯσοΫεʹσʔλ͕͍ͬͭͨ͘ͷ – ηΧϯμϦΠϯσοΫεʹओΩʔؚ͕·ΕΔͷͰɺओΩʔ͕େ ͖͍߹ΠϯσοΫε͕େ͖͘ͳΔ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 22 / 27
.Z*4".Τϯδϯ • શจΠϯσοΫεɺѹॖɺGISؔΛఏڙ • τϥϯβΫγϣϯߦϨϕϧͰαϙʔτ͍ͯ͠ͳ͍ • ΫϥογϡηʔϑͰͳ͍ • χονͳχʔζΛຬͨͨ͢Ίͷػೳ͕৭ʑ͋ΔΒ͍͠ •
σʔλετϨʔδ͕ίϯύΫτɺ͔ͭγϯϓϧͰ Φʔόʔϔου͕গͳ͍ – ༻్ʹΑͬͯ༏ΕͨύϑΥʔϚϯεΛୡͰ͖Δ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 23 / 27
ͦͷଞͷΈࠐΈΤϯδϯ • Archive • Blackhole • CSV
• Federated • Memory • Merge • NDB Cluster ͳͲͳͲ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 24 / 27 ݸਓతͳײ BlackholeͬͯΔਓ͍ͨΒ͖͖͍ͨɺҰମԿʹ͏ͷ͔?
ਖ਼͍͠ετϨʔδΤϯδϯͷબ ʮInnoDBʹͳ͍ػೳ͕ඞཁͰ͋ΓɺInnoDBʹΑ͍ସࡦ ͕ແ͍ͱ͍͏߹Ͱͳ͍ݶΓɺInnoDBΛ༻͢Δʯ • ʮMyISAMInnoDBΑΓߴͰ͋ΔʯΛӏವΈʹ͠ͳ͍ 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ
25 / 27
ςʔϒϧͷม • ALTER TABLEͰςʔϒϧม – > ALTER TABLE mytable ENGINE
= InnoDB; – ͜ͷίϚϯυ͕͔͔࣌ؒΔՄೳੑ͕͋Δ – ετϨʔδΤϯδϯݻ༗ͷػೳফ͑Δ • InnoDB -‐> MyISAM -‐> InnoDBͱม͢Δͱɺ࠷ॳʹఆٛ͞Ε͍ͯͨ ֎෦Ωʔͯ͢ফ͑Δ • MysqldumpͰม – μϯϓͯ͠ɺCREATE TABLEΛௐઅ͢Δ • CREATE SELECTͰม – > CREATE TABLE innodb_table LIKE myisam_table; – > ALTER TABLE innodb_table ENGINE=InnoDB; – > INSERT INTO innodb_table SELECT * from myisam_table; 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 26 / 27
.Z42-ͷྺ࢙ • 1.6 ࢀর 2014/05/22 ࣮ફϋΠύϑΥʔϚϯεMySQLಡॻձ@ TIMࣾ 27
/ 27