DBの寿命はアプリよりも長い!DBを救える英雄になろう RDBアンチパターン入門 #phpcon2016 #phpcon2016_2

RDBアンチパターン @soudai1025 曽根 壮大
2
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

生産性を求めるあまり捨てた機能が死んでいたせいで、DBの本来の役割を果たさせることができなくなる。 #phpcon2016 #phpcon2016_2

2016-11-03 13:14:30
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

データが巨大になると、Indexがデータの大きさを超えることがある。index足したら10時間返ってこなくなるとかある。 #phpcon2016 #phpcon2016_2

2016-11-03 13:18:19
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

クエリを意識している時点で、ORMはRDBの完全な抽象化ではない。 #phpcon2016 #phpcon2016_2

2016-11-03 13:20:05
君のクラスのビリから2番🐟 @bj1024

ORM使うことによっての制約と誓約。 失っているものがある。 #phpcon2016

2016-11-03 13:20:57
エクスクラウド @EX_Cloud_PR

【RDBアンチパターン】 制約と契約によって失ってる存在を忘れない #phpcon2016_2 #phpcon2016

2016-11-03 13:21:25
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

ORMバリバリ使ってる・つかえてるからDBの勉強しなくていいというわけではな。 10->100にするときにエンジニアとしてのバリューを出せなくなる。 #phpcon2016 #phpcon2016_2

2016-11-03 13:21:27
君のクラスのビリから2番🐟 @bj1024

ORMの違和感がなんとなくスッキリした。 #phpcon2016

2016-11-03 13:22:36
アオヤマ ミント @MintoAoyama

DBは超高度なシステムの集合みたいなものですよね… 頭下がりますよね… #phpcon2016 #phpcon2016_2

2016-11-03 13:22:39
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

事実と状態 DBには事実を保存する。アプリは生き物だから常に状態を保存させる必要がある。 delete_flag作ったことありますよね? #phpcon2016 #phpcon2016_2

2016-11-03 13:23:44
nasa9084@某某某某(0x1e) @nasa9084

ORMだけ使える人は0から1、1から10はできるけど、10から100は無理なので会社が一番成長するときに給料が上がらない。DBだけ得意な人は10から100はできるけど、0から1、1から10はできないので就職先が限られる。よって0から100までできるのが大事 #phpcon2016

2016-11-03 13:24:04
nasa9084@某某某某(0x1e) @nasa9084

結果が全体の10割程度になるとき、INDEXがよく効く #phpcon2016

2016-11-03 13:26:28
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

unique制約死ぬ(soneが2レコード)/indexが死ぬ(indexは出席簿みたいなもの。この部屋の中の人全員の性別にindexが張られている場合、indexより直接聞いたほうが早い) #phpcon2016 #phpcon2016_2

2016-11-03 13:27:05
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

状態を保っているとき->歴史がわからない 価格が改定された、消費税変わった、配送中から配送済みになったのか、いきなり配送済みになったのか。 #phpcon2016 #phpcon2016_2

2016-11-03 13:30:21
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

状態をなくすのは難しい。事実の履歴を保存するのは一つの方法。 非正規化により、計算できる値を持っておくのも一つの方法。 #phpcon2016 #phpcon2016_2

2016-11-03 13:33:39
nasa9084@某某某某(0x1e) @nasa9084

MySQLの仮想列、初めて聞いたので後で調べる #phpcon2016

2016-11-03 13:35:38
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

更新できるようにする代わりに、更新する前のなまえをカートの中に残すようにする MySQL(5.7~)の仮想列を使うと綺麗に実装できる。 #phpcon2016 #phpcon2016_2

2016-11-03 13:35:42
𝚢𝚞𝚞𝙰𝚗 @yuuAn

MySQL 5.7 には仮想列という機能がある。 #phpcon2016_2

2016-11-03 13:36:21
ぶっちー @bucchi49

MYSQL 5.7 から仮想列使えるのか。便利そう。 #phpcon2016

2016-11-03 13:36:25
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

エンジニアなんだから、なんとなくで仕事できないじゃないですか。 #phpcon2016 #phpcon2016_2

2016-11-03 13:36:43
Hiroyuki Hanai | double jump.tokyo VPoE @hanahiro_aze

「適正な形」でデータを保存するのは、クラス設計と同じで、トレーニングが必要。 そねさん的にはある程度冗長に作る。例外にも対応できるようにする。パフォーマンスチューニングで非正規化するのはちゃんと動くようになってから。 #phpcon2016 #phpcon2016_2

2016-11-03 13:38:20