Slide 1

Slide 1 text

໺ଜ޸໋, ྗ෢݈࣍*, দຊ྄հ / ϖύϘݚڀॴ / *ྗ෢݈ٕ࣍ज़࢜ࣄ຿ॴ 2018.05.18 ୈ41ճ ৘ใॲཧֶձ Πϯλʔωοτͱӡ༻ٕज़ݚڀձ WebΞϓϦέʔγϣϯςετΛ༻͍ͨ
 SQLΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏

Slide 2

Slide 2 text

1. ݚڀͷഎܠͱ՝୊ 2. ैདྷͷෆਖ਼ΫΤϦݕ஌ͷ՝୊ 3. ఏҊख๏ 4. ·ͱΊͱࠓޙͷ՝୊ 2 ໨࣍

Slide 3

Slide 3 text

1. ݚڀͷഎܠͱ՝୊

Slide 4

Slide 4 text

• WebΞϓϦέʔγϣϯʢWebΞϓϦʣͷ੬ऑੑΛར༻ͨ͠߈ܸ͸ޙΛઈͨͳ͍ • WebαʔϏε͕อ༗͢Δൿີ৘ใ͕࿙Ӯ͢Δඃ֐͕ൃੜ • WebΞϓϦ͕ར༻͢Δσʔλϕʔεʹෆਖ਼ΫΤϦΛൃߦͯ͠ߦΘΕΔ • 1ͭͷෆਖ਼ΫΤϦ͕େن໛ͳ৘ใ࿙ӮΛҾ͖ى͜͢͜ͱ΋͋Δ • ෆਖ਼ΫΤϦΛݕ஌͠σʔλϕʔεͰͷ࣮ߦΛఀࢭ͢Δରࡦ͕ඞཁ 4 ݚڀͷഎܠ

Slide 5

Slide 5 text

• WebΞϓϦ͕ൃߦ͢ΔΫΤϦͷϗϫΠτϦετΛखಈͰ࡞੒ͯ͠ݕ஌ • େن໛ͰෳࡶͳWebΞϓϦͰ͸ϗϫΠτϦετͷ࡞੒͕ࠔ೉ • WebΞϓϦͷվमʹΑΔϗϫΠτϦετͷ؅ཧ͕ࠔ೉ • ӡ༻ऀ΁ͷෛ୲͕େ͖͍ • ղܾࡦͱͯ͠ϗϫΠτϦετΛࣗಈͰ࡞੒͢Δख๏͕ఏҊ 5 ैདྷͷෆਖ਼ΫΤϦݕ஌ํ๏

Slide 6

Slide 6 text

• WebΞϓϦՔಇ࣌ʹൃߦ͞ΕΔΫΤϦΛ༻͍ͯ࡞੒͢Δख๏ • WebΞϓϦՔಇޙɼଈ࣌ʹෆਖ਼ΫΤϦΛݕ஌Ͱ͖ͳ͍ • WebΞϓϦͷιʔείʔυΛղੳͯ͠࡞੒͢Δख๏ • WebΞϓϦͷ࣮૷ґଘͷͨΊɼ൚༻తʹར༻Ͱ͖ͳ͍ 6 ैདྷͷϗϫΠτϦετࣗಈ࡞੒ख๏

Slide 7

Slide 7 text

• WebΞϓϦέʔγϣϯςετΛ༻͍ͨΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏ • WebΞϓϦՔಈલʹϗϫΠτϦετ࡞੒ɹ→ɹଈ࣌ʹෆਖ਼ΫΤϦΛݕ஌ • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ɹ→ ෳ਺ͷWebΞϓϦͰ൚༻తʹར༻Մೳ • ಋೖ࣌ͷ։ൃϓϩηε΁ͷӨڹ͕গͳ͍ɹ→ɹ։ൃऀͷӨڹΛܰݮ 7 ఏҊख๏

Slide 8

Slide 8 text

2. ैདྷͷෆਖ਼ΫΤϦݕ஌ͷ՝୊

Slide 9

Slide 9 text

• WebΞϓϦ͕ൃߦ͢ΔΫΤϦͷϗϫΠτϦετΛखಈͰ࡞੒ͯ͠ݕ஌ • WebαʔϏεͷ։ൃ͕ਐΉʹ൐͍ɼWebΞϓϦ͕େن໛ԽɾෳࡶԽ • WebΞϓϦ͕ൃߦ͢ΔΫΤϦ͕૿େɹ • WebαʔϏε͸࢓༷มߋʹΑΓWebΞϓϦ͕ൃߦ͢ΔΫΤϦ͕มԽ • ൃߦ͢ΔΫΤϦͱϗϫΠτϦετͷ੔߹ੑΛऔΔඞཁ͋Γ • WebαʔϏεӡ༻ऀͷෛ୲͕૿େ͠ӡ༻͕ࠔ೉Խ 9 ैདྷͷෆਖ਼ΫΤϦݕ஌ํ๏ͱ՝୊

Slide 10

Slide 10 text

• WebΞϓϦ͕ൃߦ͢ΔΫΤϦ͸࣮ࡍʹൃߦ͞ΕͨΫΤϦ΍ιʔείʔυ͔Β ݶఆͰ͖Δ • ϗϫΠτϦετΛࣗಈͰ࡞੒͢Δख๏͕ఏҊ͞Ε͍ͯΔ • WebΞϓϦՔಇ࣌ʹൃߦ͞ΕͨΫΤϦΛ༻͍ͯ࡞੒ • WebΞϓϦͷιʔείʔυΛղੳͯ͠࡞੒ 10 ෆਖ਼ΫΤϦݕ஌ͷ՝୊ʹର͢Δैདྷख๏

Slide 11

Slide 11 text

• WebΞϓϦՔಇ࣌ʹൃߦ͞ΕͨΫΤϦΛ༻͍ͯϗϫΠτϦετΛ࡞੒ • ൃߦ͞ΕͨΫΤϦΛߏจղੳͯ͠ɼΫΤϦߏ଄ʹͯ͠ొ࿥ • ΫΤϦߏ଄͸ΫΤϦͷϦςϥϧ஋ΛϓϨʔεϗϧμʔʹஔ͖׵͑ͨ΋ͷ 11 ൃߦ͞ΕͨΫΤϦΛ༻͍ͨख๏ σʔλϕʔε 8FCΞϓϦ ΫΤϦ ϗϫΠτϦετ 8FCΞϓϦՔಇ࣌ 4&-&$5'30.VTFST8)&3&JE 4&-&$5'30.VTFST8)&3&JE Ϧςϥϧ ΫΤϦߏ଄ͷྫ

Slide 12

Slide 12 text

• ϝϦοτ • WebΞϓϦͷ࣮૷ʹґଘͤͣϗϫΠτϦετΛ࡞੒Մೳ • σϝϦοτ • ϗϫΠτϦετ࡞੒த͸ෆਖ਼ΫΤϦͷݕ஌͕Ͱ͖ͳ͍ • WebΞϓϦՔಇ࣌ʹϗϫΠτϦετ࡞੒ͱෆਖ਼ΫΤϦݕ஌͕ࠞࡏ • WebαʔϏεͷվमස౓͕ߴ͍͜ͱ͔Βݕ஌Ͱ͖ͳ͍λΠϛϯά͕ଟൃ • ϗϫΠτϦετͷ࡞੒͸WebΞϓϦՔಈલʹߦ͏ඞཁ͕͋Δ 12 ൃߦ͞ΕͨΫΤϦΛ༻͍ͨख๏ͷϝϦοτɾσϝϦοτ

Slide 13

Slide 13 text

• WebΞϓϦͷιʔείʔυΛղੳͯ͠ϗϫΠτϦετΛ࡞੒ • ιʔείʔυதͷSQLΛ૊Έཱ͍ͯͯΔ෦෼ͷจࣈྻॲཧΛղੳͯ͠
 ൃߦ͞Ε͏ΔΫΤϦύλʔϯΛྻڍ • WebΞϓϦͷՔಈલʹϗϫΠτϦετ࡞੒ 13 ιʔείʔυղੳΛ༻͍ͨख๏ ղੳث ιʔείʔυ ϗϫΠτϦετ 8FCΞϓϦՔಈલ

Slide 14

Slide 14 text

• ϝϦοτ • WebΞϓϦՔಈޙɼଈ࣌ʹෆਖ਼ΫΤϦݕ஌͕Մೳ • σϝϦοτ • ιʔείʔυղੳ͕WebΞϓϦͷ࣮૷ʹґଘ͢ΔͨΊ൚༻తʹར༻ෆՄ • WebαʔϏε͸࣮૷ʹ༷ʑͳݴޠ΍ORM*Λར༻ • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ํ๏͕ඞཁ 14 ιʔείʔυղੳΛ༻͍ͨख๏ͷϝϦοτɾσϝϦοτ *Scott W. Ambler, Mapping objects to relational databases What you need to know and why Ronin International, July 2000

Slide 15

Slide 15 text

3. ఏҊख๏

Slide 16

Slide 16 text

• ैདྷख๏ͷ՝୊͔ΒఏҊख๏͸ҎԼͷཁ݅Λຬͨ͢ඞཁ͕͋Δ • WebΞϓϦՔಈલʹϗϫΠτϦετ࡞੒ɹ→ɹଈ࣌ʹෆਖ਼ΫΤϦΛݕ஌ • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ɹ→ ෳ਺ͷWebΞϓϦͰ൚༻తʹར༻Մೳ • ಋೖ࣌ͷ։ൃϓϩηε΁ͷӨڹ͕গͳ͍ɹ→ɹ։ൃऀͷӨڹΛܰݮ 16 ఏҊख๏ͷཁ݅

Slide 17

Slide 17 text

• WebΞϓϦέʔγϣϯςετΛ༻͍ͨΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏ • ։ൃϓϩηεʹࣗಈςετ͕૊Έࠐ·Ε͍ͯΔલఏ • ςετ࣌ʹϗϫΠτϦετΛࣗಈͰ࡞੒͢ΔॲཧΛ௥Ճ • ։ൃϓϩηεͷӨڹܰݮɼWebΞϓϦՔಈલʹϗϫΠτϦετ࡞੒ • ςετ࣌ʹൃߦ͞ΕͨΫΤϦΛ༻͍ͯϗϫΠτϦετΛ࡞੒ • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ 17 ఏҊख๏֓ཁ

Slide 18

Slide 18 text

18 લఏͱ͢ΔࣗಈςετΛ༻͍ͨ։ൃϓϩηε ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ /P :FT ӡ༻։࢝ ςετ੒ޭ w ৽ػೳͷ௥Ճ w طଘػೳͷमਖ਼ w 8FCΞϓϦΛಈ࡞ͤ͞Δखॱͱಈ࡞ͷ݁ՌΛهड़ w ςετίʔυΛݩʹࣗಈͰςετΛ࣮ߦ w 8FCΞϓϦͷಈ࡞͕࢓༷௨Γ͔Λ֬ೝ w ςετࣦഊɿ8FCΞϓϦͷιʔείʔυ΋͘͠͸ ςετίʔυʹ໰୊͋Γ w ςετ੒ޭɿ8FCΞϓϦ͕࢓༷௨Γʹಈ࡞ w ৽͍͠8FCΞϓϦͷιʔείʔυΛαʔόʹ഑ஔ w ৽͍͠8FCΞϓϦͷӡ༻Λ։࢝

Slide 19

Slide 19 text

19 ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ ʴ ϗϫΠτϦετ࡞੒ /P :FT ӡ༻։࢝ ςετ੒ޭ w ࣗಈςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετ Λࣗಈ࡞੒ w ҎԼΛͦΕͧΕαʔόʹ഑ஔ w ৽͍͠8FCΞϓϦͷιʔείʔυ w ৽͍͠8FCΞϓϦͷΫΤϦͷϗϫΠτϦετ ։ൃϓϩηεʹ͓͚ΔఏҊख๏ͷҐஔ෇͚ w ։ൃϓϩηε΁ͷӨڹ͕খ͍͞ w ӡ༻։࢝࣌ʹ͸ෆਖ਼ΫΤϦΛݕ஌Ͱ͖Δঢ়ଶ w ϗϫΠτϦετͷ໢ཏੑ͸ςετ࣌ʹൃߦ͞ΕͨΫ ΤϦʹґଘ w ߴ͍ςετΧόϨοδ͕ඞཁ

Slide 20

Slide 20 text

• ఏҊख๏͸ςετ࣌ʹൃߦ͞ΕͨΫΤϦΛ༻͍ͯϗϫΠτϦετΛ࡞੒ • ఏҊख๏Ͱݕ஌Ͱ͖ΔΫΤϦ͸ςετ࣌ʹൃߦ͞Ε͍ͯͳ͍ΫΤϦ • ςετ͞Ε͍ͯͳ͍ΫΤϦɿςετίʔυ͕هड़͞Ε͓ͯΒͣݕ஌͞Εͨ΋ͷ • ෆਖ਼ΫΤϦɿWebΞϓϦ͕ൃߦ͠ͳ͍΋ͷ 20 ఏҊख๏Ͱݕ஌Ͱ͖ΔΫΤϦͷߟ࡯

Slide 21

Slide 21 text

21 ΫΤϦͷ಺แؔ܎ શͯͷΫΤϦ ςετ͞Ε͍ͯΔΫΤϦྖҬ ʢϗϫΠτϦετʹొ࿥ʣ 8FCΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦྖҬ ɿςετ͞Ε͍ͯΔΫΤϦྖҬ ɿෆਖ਼ΫΤϦྖҬ ɿςετ͞Ε͍ͯͳ͍ΫΤϦྖҬ

Slide 22

Slide 22 text

22 ςετΧόϨοδʹΑΔྖҬͷมԽ શͯͷΫΤϦ ςετ͞Ε͍ͯΔΫΤϦྖҬ ʢϗϫΠτϦετʹొ࿥ʣ 8FCΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦྖҬ શͯͷΫΤϦ 8FCΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦྖҬ ςετ͞Ε͍ͯΔΫΤϦྖҬ ʢϗϫΠτϦετʹొ࿥ʣ ςετΧόϨοδΛ޲্ͤ͞Δ͜ͱͰςετ͞Ε͍ͯΔΫΤϦྖҬΛ֦େ ˠɹϗϫΠτϦετͷ໢ཏੑ͕޲্ ɿςετ͞Ε͍ͯΔΫΤϦྖҬ ɿෆਖ਼ΫΤϦྖҬ ɿςετ͞Ε͍ͯͳ͍ΫΤϦྖҬ

Slide 23

Slide 23 text

• ςετΧόϨοδͷ޲্ʹΑΓϗϫΠτϦετͷ໢ཏੑ͕޲্ • ϗϫΠτϦετͷ໢ཏੑ޲্ͷͨΊʹ༨෼ͳςετΛ௥Ճͨ͘͠ͳ͍ • ςετ؅ཧΛࠔ೉Խ͠ɼ։ൃऀͷෛ୲ͱͳΔ͜ͱΛආ͚͍ͨ • ఏҊख๏͸ݱ։ൃ࣌఺ͰͷϗϫΠτϦετͷϕʔεΛఏڙ • ໨ඪͱ͢ΔςετΧόϨοδ·Ͱ͸ఏҊख๏ͰϗϫΠτϦετΛ࡞੒ • ϗϫΠτϦετʹෆ଍͍ͯ͠Δཁૉͷิ׬ʹ͸ผͷํ๏͕ඞཁ 23 ςετΧόϨοδͱϗϫΠτϦετͷ໢ཏੑ

Slide 24

Slide 24 text

• WebΞϓϦ͕ൃߦ͢ΔΫΤϦ͸ϢʔβೖྗʹΑͬͯมԽ • ΫΤϦύλʔϯ͸๲େͱͳΔͨΊ͢΂ͯΛొ࿥͢Δͷ͸ࠔ೉ • ΫΤϦͷϦςϥϧΛϓϨʔεϗϧμʹஔ͖׵͑ͨΫΤϦߏ଄Λొ࿥ • ΫΤϦߏ଄͕ҟͳΔ΋ͷΛݕ஌Ͱ͖Δ 24 ϗϫΠτϦετͷొ࿥಺༰ 4&-&$5'30.VTFST8)&3&OBNFb5BJDIJ` 4&-&$5'30.VTFST
 8)&3&JE ϗϫΠτϦετ 4&-&$5'30.VTFST8)&3&JE র߹ র߹݁Ռ

Slide 25

Slide 25 text

• ΫΤϦߏ଄͕ಉҰͱͳΔ΋ͷ͸ݕ஌Ͱ͖ͳ͍ 25 ఏҊख๏Ͱݕ஌Ͱ͖ͳ͍ΫΤϦ ௨ৗɿSELECT * FROM users LIMIT 30 ҟৗɿSELECT * FROM users LIMIT 1000 SELECT * FROM users LIMIT ?

Slide 26

Slide 26 text

26 ఏҊख๏ͷઃܭ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ • σʔλϕʔεͷલஈʹσʔλϕʔεϓϩΩγΛ഑ஔ • ςετ࣌ʹ͸ൃߦ͞ΕΔΫΤϦΛσʔλϕʔεϓϩΩγͰऩूͯ͠ϗϫΠτϦε τΛ࡞੒ɹˠɹWebΞϓϦͷ࣮૷ݴޠʹґଘ͠ͳ͍ • WebΞϓϦՔಇ࣌ͷෆਖ਼ΫΤϦݕ஌΋ಉ͡ߏ੒

Slide 27

Slide 27 text

27 ςετ࣌ͷϗϫΠτϦετ࡞੒ϑϩʔ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ 4&-&$5'30. VTFST 8)&3&JE 4&-&$5'30. VTFST 8)&3&JE 4&-&$5'30. VTFST 8)&3&JEʁ ΫΤϦΛൃߦ ΫΤϦ͸ͦͷ··σʔλϕʔε΁ ςετऴྃޙΫΤϦߏ଄ʹม׵ ΫΤϦߏ଄ΛϗϫΠτϦετʹొ࿥ ΫΤϦΛऩू

Slide 28

Slide 28 text

28 WebΞϓϦՔಇ࣌ͷෆਖ਼ΫΤϦݕ஌ϑϩʔ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ 4&-&$5'30. VTFST 8)&3&JE 4&-&$5'30. VTFST 8)&3&JE 4&-&$5'30. VTFST 8)&3&JEʁ ΫΤϦߏ଄ʹม׵ ϗϫΠτϦετͱೖྗ͞ΕͨΫΤϦߏ଄Λর߹ ΫΤϦΛൃߦ ΫΤϦΛड͚औΔ র߹݁ՌΛฦ٫ র߹݁Ռ͔ΒΫΤϦΛ࣮ߦ͢Δ͔Λܾఆ

Slide 29

Slide 29 text

4. ·ͱΊͱࠓޙͷ՝୊

Slide 30

Slide 30 text

• WebΞϓϦέʔγϣϯςετΛ༻͍ͨΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏ ͷௐࠪɾݕ౼Λߦͬͨ • ఏҊख๏͸ҎԼͷཁ݅ΛຬͨͤΔͱߟ͑ΒΕΔ • WebΞϓϦՔಈલʹϗϫΠτϦετΛ࡞੒Ͱ͖Δ • WebΞϓϦͷ࣮૷ʹґଘͤͣϗϫΠτϦετΛ࡞੒Ͱ͖Δ • ಋೖ࣌ͷ։ൃϓϩηε΁ͷӨڹ͕খ͍͞ 30 ·ͱΊ

Slide 31

Slide 31 text

• ఏҊख๏ͷ࣮૷ • ςετΧόϨοδʹର͢Δෆਖ਼ΫΤϦͷݕ஌ਫ਼౓ͷݕূ • ϗϫΠτϦετͷ଍Γͳ͍ཁૉΛิ׬͢Δํ๏ͷݕ౼ • ΫΤϦͷϦςϥϧͷෆਖ਼Λݕ஌͢Δํ๏ͷݕ౼ 31 ࠓޙͷ՝୊