Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQLで画像 を扱うメリット・デメリットと障害・解決事例/Advantages_and_disadvantages_of_handling_images_with_MySQL_and_special_patterns

MySQLで画像 を扱うメリット・デメリットと障害・解決事例/Advantages_and_disadvantages_of_handling_images_with_MySQL_and_special_patterns

PHPカンファレンス福岡 2018 でお話ししました
「MySQLで画像 を扱うメリット・デメリットと障害・解決事例」
の登壇スライトです。

mamy1326

June 16, 2018
Tweet

More Decks by mamy1326

Other Decks in Programming

Transcript

  1. .Z42-Ͱը૾Λѻ͏
    ϝϦοτɾσϝϦοτͱ
    ো֐ɾղܾࣄྫ
    ·Έ΍ͳ͓͖ !NBNZ

    +VO!QIQDPOGVL

    View full-size slide

  2. ࣦഊମݧͱ
    ղܾख๏Λղઆ

    View full-size slide

  3. ϝϦοτ
    "
    σϝϦοτ
    $

    View full-size slide

  4. ద੾ʹը૾Λ
    ѻ͏ํ๏Λ
    ͓࿩͠͠·͢

    View full-size slide

  5. ͓࿩͢Δ͜ͱ
    ▶︎ ࣗݾ঺հ
    ▶︎ τϥϒϧࣄྫͱղܾํ๏
    ▶︎ ϝϦοτɾσϝϦοτ
    ▶︎ Կ͕ϕετͳͷ͔
    ▶︎ ͓ΘΓʹ

    View full-size slide

  6. ͓࿩͢Δ͜ͱ
    ▶︎ ࣗݾ঺հ
    ▶︎ τϥϒϧࣄྫͱղܾํ๏
    ▶︎ ϝϦοτɾσϝϦοτ
    ▶︎ Կ͕ϕετͳͷ͔
    ▶︎ ͓ΘΓʹ

    View full-size slide

  7. ࣗݾ঺հ
    Name ɿ·Έ΍ͳ͓͖
    ॴଐɹ ɿInnovator Japan Inc.
    Twitterɿ@mamy1326ʢ·Έʔʣ
    - ීஈ͸PHPॻ͍ͯ·͢
    - 2017೥1݄ʹॳΊͯmy.cnfΛ৮Δ
    - 2017೥ MySQL͕झຯ
    - 2018೥ DNSͱωοτϫʔΫ͕झຯ

    View full-size slide

  8. ͱ͜ΖͰ
    Έͳ͞Μ

    View full-size slide

  9. ը૾Λ3%#ʹ
    ೖΕͨ͜ͱ
    ·ͨ͸ʜ

    View full-size slide

  10. ϓϩδΣΫτܦݧ
    ͋Γ·͔͢ʁ
    ڍख✋

    View full-size slide

  11. ΋ͪΖΜʁ
    ๻΋͋Γ·͢ʂ

    View full-size slide

  12. ௞ି؅ཧγεςϜ
    ෺݅ը૾Λશ෦
    ΧϥϜʹೖΕΔ

    View full-size slide

  13. ͓࿩͢Δ͜ͱ
    ▶︎ ࣗݾ঺հ
    ▶︎ τϥϒϧࣄྫͱղܾํ๏
    ▶︎ ϝϦοτɾσϝϦοτ
    ▶︎ Կ͕ϕετͳͷ͔
    ▶︎ ͓ΘΓʹ

    View full-size slide

  14. %#͔Β
    ը૾Λ4&-&$5
    ʢ֎؍ɺ಺૷ɺؒऔɺपลʣ

    View full-size slide

  15. ಥવͷ
    ͓٬͞·͔Βͷ
    ͓໰͍߹Θͤ

    View full-size slide

  16. ͋Δ೔ͷ͓໰͍߹Θͤ
    ☎ɿ෺݅σʔλΞοϓϩʔυͨ͠Βɺ
    ɹɹը໘͕ਅͬനʹͳΔΜͰ͚͢Ͳ
    ɿը໘Ωϟϓνϟૹͬͯ௖͍ͯ΋
    ɹɹΑΖ͍͠Ͱ͔͢ʁ

    View full-size slide

  17. ͋Δ೔ͷ͓໰͍߹Θͤ
    ը໘
    ਅͬന

    View full-size slide

  18. ͋Δ೔ͷ͓໰͍߹Θͤ
    ը໘
    ਅͬന
    λΠϜΞ΢τ

    View full-size slide

  19. ࣮ࡍʹى͖ͨτϥϒϧ
    ⾣େ͖ͳαΠζͷը૾ΛΞοϓϩʔυ
    ɹˠεϚϗɺσδΧϝαΠζ
    ⾣ෳ਺ຕΛҰ౓ʹΞοϓϩʔυ
    ɹˠ෺݅ͷը૾਺͕ଟ͍
    ⾣ϦΫΤετ͕ଟൃ
    ɹˠൟ๩ظʹूதɺෳ਺ళฮͰൃੜ

    View full-size slide

  20. ͸ͯ

    ςʔϒϧߏ੒ݟΔ͔ʜ

    View full-size slide

  21. mysql> show create table bukken\G
    *************************** 1. row ***************************
    Table: bukken
    Create Table: CREATE TABLE `bukken` (
    `id` int(10) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
    `gaikan_01` mediumblob NOT NULL,
    `gaikan_02` mediumblob,
    `gaikan_03` mediumblob,
    `gaikan_04` mediumblob,
    `gaikan_05` mediumblob,
    `gaikan_06` mediumblob,
    `gaikan_07` mediumblob,
    `gaikan_08` mediumblob,
    `gaikan_09` mediumblob,
    `gaikan_10` mediumblob,
    `madori_01` mediumblob NOT NULL,
    `naiso_01` mediumblob NOT NULL,
    `naiso_02` mediumblob,
    `naiso_03` mediumblob,
    `naiso_04` mediumblob,
    `naiso_05` mediumblob,
    `naiso_06` mediumblob,
    `naiso_07` mediumblob,
    `naiso_08` mediumblob,
    `naiso_09` mediumblob,
    `naiso_10` mediumblob,
    `syuhen_01` mediumblob NOT NULL,
    `syuhen_02` mediumblob,
    `syuhen_03` mediumblob,
    `syuhen_04` mediumblob,
    `syuhen_05` mediumblob,
    `syuhen_06` mediumblob,
    `syuhen_07` mediumblob,
    `syuhen_08` mediumblob,
    `syuhen_09` mediumblob,
    `syuhen_10` mediumblob,
    `panorama` mediumblob,
    `gaikan_s_01` mediumblob NOT NULL,
    `gaikan_s_02` mediumblob,
    `gaikan_s_03` mediumblob,
    `gaikan_s_04` mediumblob,
    `gaikan_s_05` mediumblob,
    `gaikan_s_06` mediumblob,
    `gaikan_s_07` mediumblob,
    `gaikan_s_08` mediumblob,
    `gaikan_s_09` mediumblob,
    `gaikan_s_10` mediumblob,
    `madori_s_01` mediumblob NOT NULL,
    `naiso_s_01` mediumblob NOT NULL,
    `naiso_s_02` mediumblob,
    `naiso_s_03` mediumblob,
    `naiso_s_04` mediumblob,
    `naiso_s_05` mediumblob,
    `naiso_s_06` mediumblob,
    `naiso_s_07` mediumblob,
    `naiso_s_08` mediumblob,
    `naiso_s_09` mediumblob,
    `naiso_s_10` mediumblob,
    `syuhen_s_01` mediumblob NOT NULL,
    `syuhen_s_02` mediumblob,
    `syuhen_s_03` mediumblob,
    `syuhen_s_04` mediumblob,
    `syuhen_s_05` mediumblob,
    `syuhen_s_06` mediumblob,
    `syuhen_s_07` mediumblob,
    `syuhen_s_08` mediumblob,
    `syuhen_s_09` mediumblob,
    `syuhen_s_10` mediumblob,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4
    1 row in set (0.00 sec)

    View full-size slide

  22. mysql> show create table bukken\G
    *************************** 1. row ***************************
    Table: bukken
    Create Table: CREATE TABLE `bukken` (
    `id` int(10) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
    `gaikan_01` mediumblob NOT NULL,
    `gaikan_02` mediumblob,
    `gaikan_03` mediumblob,
    `gaikan_04` mediumblob,
    `gaikan_05` mediumblob,
    `gaikan_06` mediumblob,
    `gaikan_07` mediumblob,
    `gaikan_08` mediumblob,
    `gaikan_09` mediumblob,
    `gaikan_10` mediumblob,
    `madori_01` mediumblob NOT NULL,
    `naiso_01` mediumblob NOT NULL,
    `naiso_02` mediumblob,
    `naiso_03` mediumblob,
    `naiso_04` mediumblob,
    `naiso_05` mediumblob,
    `naiso_06` mediumblob,
    `naiso_07` mediumblob,
    `naiso_08` mediumblob,
    `naiso_09` mediumblob,
    `naiso_10` mediumblob,
    `syuhen_01` mediumblob NOT NULL,
    `syuhen_02` mediumblob,
    `syuhen_03` mediumblob,
    `syuhen_04` mediumblob,
    `syuhen_05` mediumblob,
    `syuhen_06` mediumblob,
    `syuhen_07` mediumblob,
    `syuhen_08` mediumblob,
    `syuhen_09` mediumblob,
    `syuhen_10` mediumblob,
    `panorama` mediumblob,
    `gaikan_s_01` mediumblob NOT NULL,
    `gaikan_s_02` mediumblob,
    `gaikan_s_03` mediumblob,
    `gaikan_s_04` mediumblob,
    `gaikan_s_05` mediumblob,
    `gaikan_s_06` mediumblob,
    `gaikan_s_07` mediumblob,
    `gaikan_s_08` mediumblob,
    `gaikan_s_09` mediumblob,
    `gaikan_s_10` mediumblob,
    `madori_s_01` mediumblob NOT NULL,
    `naiso_s_01` mediumblob NOT NULL,
    `naiso_s_02` mediumblob,
    `naiso_s_03` mediumblob,
    `naiso_s_04` mediumblob,
    `naiso_s_05` mediumblob,
    `naiso_s_06` mediumblob,
    `naiso_s_07` mediumblob,
    `naiso_s_08` mediumblob,
    `naiso_s_09` mediumblob,
    `naiso_s_10` mediumblob,
    `syuhen_s_01` mediumblob NOT NULL,
    `syuhen_s_02` mediumblob,
    `syuhen_s_03` mediumblob,
    `syuhen_s_04` mediumblob,
    `syuhen_s_05` mediumblob,
    `syuhen_s_06` mediumblob,
    `syuhen_s_07` mediumblob,
    `syuhen_s_08` mediumblob,
    `syuhen_s_09` mediumblob,
    `syuhen_s_10` mediumblob,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4
    1 row in set (0.00 sec)
    ͑ʁ

    View full-size slide

  23. ςʔϒϧߏ੒

    mysql> show create table bukken\G
    ****************** 1. row ******************
    Table: bukken
    Create Table: CREATE TABLE `bukken` (
    `id` int(10) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
    ⾣ʮͪΌΜͱʯ֬ೝͯ͠ΈΔ

    View full-size slide

  24. ςʔϒϧߏ੒

    `gaikan_01` mediumblob NOT NULL,
    `gaikan_02` mediumblob,
    `gaikan_03` mediumblob,
    `gaikan_04` mediumblob,
    `gaikan_05` mediumblob,
    `gaikan_06` mediumblob,
    `gaikan_07` mediumblob,
    `gaikan_08` mediumblob,
    `gaikan_09` mediumblob,
    `gaikan_10` mediumblob,

    View full-size slide

  25. ςʔϒϧߏ੒

    `madori_01` mediumblob NOT NULL,
    `naiso_01` mediumblob NOT NULL,
    `naiso_02` mediumblob,
    `naiso_03` mediumblob,
    `naiso_04` mediumblob,
    `naiso_05` mediumblob,
    `naiso_06` mediumblob,
    `naiso_07` mediumblob,
    `naiso_08` mediumblob,
    `naiso_09` mediumblob,
    `naiso_10` mediumblob,

    View full-size slide

  26. ςʔϒϧߏ੒

    `syuhen_01` mediumblob NOT NULL,
    `syuhen_02` mediumblob,
    `syuhen_03` mediumblob,
    `syuhen_04` mediumblob,
    `syuhen_05` mediumblob,
    `syuhen_06` mediumblob,
    `syuhen_07` mediumblob,
    `syuhen_08` mediumblob,
    `syuhen_09` mediumblob,
    `syuhen_10` mediumblob,
    `panorama` mediumblob,

    View full-size slide

  27. ςʔϒϧߏ੒

    `gaikan_s_01` mediumblob NOT NULL,
    `gaikan_s_02` mediumblob,
    `gaikan_s_03` mediumblob,
    `gaikan_s_04` mediumblob,
    `gaikan_s_05` mediumblob,
    `gaikan_s_06` mediumblob,
    `gaikan_s_07` mediumblob,
    `gaikan_s_08` mediumblob,
    `gaikan_s_09` mediumblob,
    `gaikan_s_10` mediumblob,

    View full-size slide

  28. ςʔϒϧߏ੒

    `madori_s_01` mediumblob NOT NULL,
    `naiso_s_01` mediumblob NOT NULL,
    `naiso_s_02` mediumblob,
    `naiso_s_03` mediumblob,
    `naiso_s_04` mediumblob,
    `naiso_s_05` mediumblob,
    `naiso_s_06` mediumblob,
    `naiso_s_07` mediumblob,
    `naiso_s_08` mediumblob,
    `naiso_s_09` mediumblob,
    `naiso_s_10` mediumblob,

    View full-size slide

  29. ςʔϒϧߏ੒

    `syuhen_s_01` mediumblob NOT NULL,
    `syuhen_s_02` mediumblob,
    `syuhen_s_03` mediumblob,
    `syuhen_s_04` mediumblob,
    `syuhen_s_05` mediumblob,
    `syuhen_s_06` mediumblob,
    `syuhen_s_07` mediumblob,
    `syuhen_s_08` mediumblob,
    `syuhen_s_09` mediumblob,
    `syuhen_s_10` mediumblob,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=7687528 DEFAULT
    CHARSET=utf8mb4
    1 row in set (0.00 sec)

    View full-size slide

  30. ςʔϒϧߏ੒

    `syuhen_s_01` mediumblob NOT NULL,
    `syuhen_s_02` mediumblob,
    `syuhen_s_03` mediumblob,
    `syuhen_s_04` mediumblob,
    `syuhen_s_05` mediumblob,
    `syuhen_s_06` mediumblob,
    `syuhen_s_07` mediumblob,
    `syuhen_s_08` mediumblob,
    `syuhen_s_09` mediumblob,
    `syuhen_s_10` mediumblob,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=7687528 DEFAULT
    CHARSET=utf8mb4
    1 row in set (0.00 sec)
    όΠφϦσʔλ
    อଘ༻ΧϥϜ

    View full-size slide

  31. ͳΜͱը૾
    શ෦3%#ʹ
    ͋ΔΜͰ͢Αʢ਒͑੠

    View full-size slide

  32. ࣮ࡍͷͱ͜Ζ
    ͲΜͳ։ൃ͔ͩͬͨ

    View full-size slide

  33. ཧ૝ʢ։ൃʣͱݱ࣮ʢӡ༻ʣ
    ͏Μɺେৎ෉ʂ
    ⾣։ൃ͍ͯͨ͠؀ڥ
    8FC %#
    ։ൃऀ

    View full-size slide

  34. ⾣࣮ࡍͷ؀ڥ
    8FC %#
    ཧ૝ʢ։ൃʣͱݱ࣮ʢӡ༻ʣ

    View full-size slide

  35. ⾣࣮ࡍͷ؀ڥ

    ωοτϫʔΫ
    8FC %#
    ཧ૝ʢ։ൃʣͱݱ࣮ʢӡ༻ʣ

    View full-size slide

  36. ⾣࣮ࡍͷ؀ڥ
    ϓϩηε
    8FC %#

    ཧ૝ʢ։ൃʣͱݱ࣮ʢӡ༻ʣ

    View full-size slide

  37. ⾣࣮ࡍͷ؀ڥ

    λΠϜΞ΢τ
    8FC %#
    ཧ૝ʢ։ൃʣͱݱ࣮ʢӡ༻ʣ

    View full-size slide

  38. ӡ༻Λ૝ఆ͍ͯ͠ͳ͍
    ɾେ͖ͳը૾͸Ξοϓ͠ͳ͍ͩΖ͏
    ɾ͍ͬ΃ΜʹΞοϓ͠ͳ͍ͩΖ͏
    ɾେ੎ͰΞοϓ͠ͳ͍ͩΖ͏
    ɾ༰ྔ͸͙͢ʹᷓΕͳ͍ͩΖ͏
    ɾ৑௕Խ͠ͳ͍͍ͯͩ͘Ζ͏
    ɾࠔͬͨΒεέʔϧΞοϓ͢Ε͹ʁ

    View full-size slide

  39. ӡ༻Λ૝ఆ͍ͯ͠ͳ͍
    ɾେ͖ͳը૾͸Ξοϓ͠ͳ͍ͩΖ͏
    ɾ͍ͬ΃ΜʹΞοϓ͠ͳ͍ͩΖ͏
    ɾେ੎ͰΞοϓ͠ͳ͍ͩΖ͏
    ɾ༰ྔ͸͙͢ʹᷓΕͳ͍ͩΖ͏
    ɾ৑௕Խ͠ͳ͍͍ͯͩ͘Ζ͏
    ɾࠔͬͨΒεέʔϧΞοϓ͢Ε͹ʁ

    View full-size slide

  40. Ͱ͸
    Ͳ͏΍ͬͯ
    ղܾ͢Δ͔

    View full-size slide

  41. ղܾࡦ
    ⾣ॲཧͰ͖ΔσʔλྔΛ੍ݶ
    ɹˠׂͱ͙͢ରԠͰ͖Δ͕࢑ఆత
    ⾣Ϣʔβʔ਺Λ੍ݶ
    ɹˠαʔϏεͰ͋ΔҎ্೉͍͠
    ⾣؂ࢹ͢Δ
    ɹˠେ੾͕ͩࠜຊղܾͰ͸ͳ͍
    ⾣%#ॲཧΛվળ͢Δ
    ɹˠ໌Β͔ͳωοΫΛࠜຊղܾ

    View full-size slide

  42. ղܾࡦ
    ⾣ॲཧͰ͖ΔσʔλྔΛ੍ݶ
    ɹˠׂͱ͙͢ରԠͰ͖Δ͕࢑ఆత
    ⾣Ϣʔβʔ਺Λ੍ݶ
    ɹˠαʔϏεͰ͋ΔҎ্೉͍͠
    ⾣؂ࢹ͢Δ
    ɹˠେ੾͕ͩࠜຊղܾͰ͸ͳ͍
    ⾣%#ॲཧΛվળ͢Δ
    ɹˠ໌Β͔ͳωοΫΛࠜຊղܾ

    View full-size slide

  43. ࠜຊղܾ·Ͱͷ
    ಓͷΓ

    View full-size slide

  44. ࠜຊղܾ·ͰͷಓͷΓ
    ⾣ը૾Λ3%#͔Β੾Γ཭͢
    ⾣3%#΁ͷόΠφϦొ࿥ഇࢭ
    ⾣׬શҠߦ·Ͱͷ࢓૊ΈߟҊ

    View full-size slide

  45. ಓͷΓᶃ
    ⾣ը૾Λ3%#͔Β੾Γ཭͢
    ɾը૾ϑΝΠϧ໊Λอଘ͢Δςʔϒϧ༻ҙ
    ɾ3%#Ҏ֎ʹը૾อଘ͢ΔॲཧΛ௥Ճʢᶄʣ
    ɾϑΝΠϧ໊Λ3%#ʹอଘ͢Δॲཧ௥Ճ
    ৽نొ࿥ɾมߋը૾Λ
    3%#Ҏ֎ʹ഑ஔ͢Δ४උ

    View full-size slide

  46. ಓͷΓᶄ
    ⾣3%#΁ͷόΠφϦొ࿥ॲཧΛഇࢭ
    ɾը૾อଘϧʔϧΛܾΊΔʢJEJEOBJTPKQHʣ
    ɾॲཧ੾Γସ͑ͷͨΊϝϯςφϯε
    ɾ3%#ʹొ࿥͍ͯͨ͠ॲཧΛ׬શʹഇࢭ
    3%#Ͱͷ
    ը૾૿ՃΛఀࢭ

    View full-size slide

  47. ಓͷΓᶅ
    ⾣׬શҠߦ·Ͱͷ࢓૊ΈߟҊ
    ɾ3%#ը૾ΛόονͰετϨʔδ΁
    ɾετϨʔδʹແ͚Ε͹3%#͔ΒಡΉ
    ɾ׬શʹҠߦ͕ऴΘΔ࣌ؒΛܭࢉ
    ܭըతʹը૾Λ
    ׬શʹҠߦ

    View full-size slide

  48. ⾣අ༻ͱظ͕ؒ๲େʹ͔͔Δ
    ⾣αʔϏε͕ఀࢭ͢Δ
    ⾣ӡ༻ޙͰࣦഊ͕ڐ͞Εͳ͍
    ⾣৴༻͕ࣦ௢͢Δ
    ղܾ·ͰʹΘ͔ͬͨ͜ͱ

    View full-size slide

  49. ͍ͬͨΜղܾ
    ͔ͨ͠Βͦ͜
    ྐʹ͠Α͏ʂ

    View full-size slide

  50. ͓࿩͢Δ͜ͱ
    ▶︎ ࣗݾ঺հ
    ▶︎ τϥϒϧࣄྫͱղܾํ๏
    ▶︎ ϝϦοτɾσϝϦοτ
    ▶︎ Կ͕ϕετͳͷ͔
    ▶︎ ͓ΘΓʹ

    View full-size slide

  51. ϝϦοτ
    ▶︎ τϥϯβΫγϣϯͷԸܙ
    ▶︎ ҉߸ԽͱηΩϡϦςΟ
    ▶︎ όοΫΞοϓͷू໿ੑ
    ▶︎ ؂ࠪʢཤྺʣͷ౷߹తͳ࣮૷

    View full-size slide

  52. τϥϯβΫγϣϯͷԸܙ
    ⾣ϑΝϯτϜϑΝΠϧͷճආ
    ɹˠSPMMCBDLͰҰൃͰͳ͔ͬͨ͜ͱʹ
    ϑΝΠϧͱ%#͕
    ಉ͡τϥϯβΫγϣϯͰ੍ޚ

    View full-size slide

  53. ҉߸ԽͱηΩϡϦςΟ
    ⾣ඇৗʹηϯγςΟϒͳը૾
    ɹˠΧϧςʹఴ෇͢Δը૾ͳͲ
    ҉߸ԽɾηΩϡΞʹ
    औΓѻ͏

    View full-size slide

  54. όοΫΞοϓͷू໿ੑ
    ⾣%#όοΫΞοϓͱಉ࣌ʹ
    ɹˠը૾΋όοΫΞοϓ͞ΕΔ
    %#ϦετΞ΍ผγεςϜͱͯ͠ͷ
    ؀ڥߏஙָ͕

    View full-size slide

  55. ؂ࠪ ཤྺ
    ͷ౷߹తͳ࣮૷
    ⾣ը૾ͷߋ৽ཤྺΛऔΓ͍ͨ
    ɹˠόʔδϣϯ؅ཧ΋͍ͨ͠
    ύϑΥʔϚϯεΛ٘ਜ਼ʹͯ͠΋
    ࣮૷͍ͨ͠ͳΒ0,

    View full-size slide

  56. σϝϦοτ
    ▶︎ ύϑΥʔϚϯε௿Լ
    ▶︎ DBͷετϨʔδѹഭ
    ▶︎ ωοτϫʔΫΛѹഭ
    ▶︎ ো֐఺ͷ૿Ճ
    ▶︎ ͓·͚ɿը૾ΛDB͔Β෼ׂ࣌ͷฐ֐

    View full-size slide

  57. ύϑΥʔϚϯε௿Լ
    ⾣ը૾σʔλΛϨίʔυʹؚΉ
    ɹˠಡΈॻ͖͢Δσʔλྔ૿Ճ
    σΟεΫ*0͕
    ஗͘ͳΔ

    View full-size slide

  58. %#ͷετϨʔδѹഭ
    ⾣૝ఆΛ௒͑ͨσʔλ૿Ճ
    ɹˠཁ݅௥Ճ΍ӡ༻ઃܭ΋Ε
    কདྷతʹ
    ετϨʔδΛѹഭ

    View full-size slide

  59. ωοτϫʔΫΛѹഭ
    ⾣ը૾Λ%#͔Βऔಘ
    ɹˠωοτϫʔΫѹഭ 8FC%#ؒ

    8FC%#ؒͷϨΠςϯγ͕ߴ͘
    Ϩεϙϯε͕௿Լ

    View full-size slide

  60. ো֐఺ͷ૿Ճ
    ⾣ը૾ߋ৽ॲཧ͕ෳࡶ
    ɹˠ༨ܭͳϓϩάϥϜɺ42-Λ௨͢
    ো֐఺͕૿͑Δ

    View full-size slide

  61. ⾣੩తϑΝΠϧΛઐ༻αʔόʔ΁
    ɹˠશϨίʔυҠߦɺϑΝΠϧ໊௥Ճ
    ؆୯ʹ෼ׂɺҠಈͰ͖ͣ
    σʔλྔ࣍ୈͰ͕͔͔࣌ؒΔ
    ʲ͓·͚ʳը૾Λ%#͔Β෼ׂ࣌ͷฐ֐

    View full-size slide

  62. ͓࿩͢Δ͜ͱ
    ▶︎ ࣗݾ঺հ
    ▶︎ τϥϒϧࣄྫͱղܾํ๏
    ▶︎ ϝϦοτɾσϝϦοτ
    ▶︎ Կ͕ϕετͳͷ͔
    ▶︎ ͓ΘΓʹ

    View full-size slide

  63. Կ͕ϕετͳͷ͔
    ⾣ಛघͳཁ݅ͷ৔߹ʹ࢖͏
    ɹɹˠָ͔ͩΒ҆қʹಥͬࠐ·ͳ͍
    ⾣ύϑΥʔϚϯεɾίετ
    ɹͱͷτϨʔυΦϑ
    ɹɹˠ։ൃ޻਺ɺӡ༻ίετΛਂ͘ߟྀ
    ⾣ઃܭɾ࣮૷Λ͔ͬ͠Γܭը
    ɹɹˠޙͰࠔΔ͜ͱ͕͘͢͝ଟ͍
    ⾣3%#ͷຊདྷͷ੹຿Λߟྀ
    ɹɹˠϦϨʔγϣφϧσʔλϕʔεͬͯͳΜ͚ͩͬʁ

    View full-size slide

  64. ͓࿩͢Δ͜ͱ
    ▶︎ ࣗݾ঺հ
    ▶︎ τϥϒϧࣄྫͱղܾํ๏
    ▶︎ ϝϦοτɾσϝϦοτ
    ▶︎ Կ͕ϕετͳͷ͔
    ▶︎ ͓ΘΓʹ

    View full-size slide

  65. γεςϜɾαʔϏε͸

    View full-size slide

  66. ཁ݅ͱϦιʔεͷ
    τϨʔυΦϑ

    View full-size slide

  67. ͋ͪΒΛཱͯΕ͹
    ͪ͜Βཱ͕ͨ͵͕

    View full-size slide

  68. ϝϦοτɾσϝϦοτ
    ಛघύλʔϯΛ
    Α͘ߟ͑ͯ

    View full-size slide

  69. க໋తʹ
    ࠔΒͳ͍Α͏ʹ

    View full-size slide

  70. ӡ༻Λߟ͑ͨ
    ઃܭΛ͠·͠ΐ͏ʂ

    View full-size slide

  71. σʔλͷण໋͸
    ΞϓϦΑΓ௕͍ͧ

    View full-size slide

  72. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

    View full-size slide