ORMとDBA

2
Hayato Matsuura @dblmkt

ORMが出したげなスロークエリを見つけたら、そのORMではどう書いたらよくなるかをアドバイスできるといいんだけど、なかなか難しくて、DBA的観点からしか話ができなくてつらい

2015-03-24 11:02:10
Hayato Matsuura @dblmkt

DBAからみた理想的クエリ(高速実行、無駄な行をフェッチしないとか)と、アプリエンジニアから見た理想的クエリ(ORMで楽に書ける、ロジックとなじむとか)に乖離があって、そこを埋められるスキルが欲しい

2015-03-24 11:02:36
oranie @oranie

@dblmkt 解決方法がまだ無くてもどういうパターンで困るとか是非知りたいです!

2015-03-24 11:21:23
Hayato Matsuura @dblmkt

@la_luna_azul @kuwa_tw @oranie 今のところORM側の知識に乏しいので、全部困りますというか、何を言ったらアプリの人が困らないか分からないです。マジレス!

2015-03-24 12:19:24
Hayato Matsuura @dblmkt

すいません、マジレスしかできません

2015-03-24 12:19:37
oranie @oranie

@dblmkt @la_luna_azul @kuwa_tw ORM普通に使うとどういう糞クエリが出来るのかだけでも知りたいです!とマジレス

2015-03-24 12:40:57
Hayato Matsuura @dblmkt

@oranie N+1問題、サブクエリや結合がやたら使われる、インデックス張っても変な条件が勝手に入って台無し、とかですかねー。まず、ORM使うと自分がどんなクエリ発行してるか意識しないと見なくなっちゃうのが一番問題なんじゃないですかね。。

2015-03-24 13:36:57
oranie @oranie

@dblmkt あーそこはありますなぁ・・・。Golangで書いている時にORMの機能でとにかく全部EXPLAIN掛けるとかの機能無くてウヘェってなった記憶思い出した。

2015-03-24 13:45:52
Hayato Matsuura @dblmkt

@oranie 使ってるツールの機能が足りなくてなおさらクエリの確認がおろそかになるループも確かにありそうですね。。ご存知の通り我が社はORMもカオスってるのでなおさらこまっちんぐw

2015-03-24 15:37:40
oinume @oinume

@oranie @dblmkt 自分は複雑なクエリ書くときはORM使わないようにしてますねー。ORMの機能を覚えることほど不毛なことってないでしょうと思う人間なのでw

2015-03-24 15:44:58
Hayato Matsuura @dblmkt

@oinume @oranie おお、世の中の開発者がみんなそう思ってくれればクソクエリがどんなに減るか!w

2015-03-24 15:55:56
Hayato Matsuura @dblmkt

いいねーいいねー、インデックス張ってもない100万件入ったテーブルでselect *とか、超イケてるッ!その潔ささわやかすぎるッ!

2015-03-24 16:36:15
oinume @oinume

@dblmkt @oranie でも僕が知ってる凄腕のDBAがアプリエンジニアに転向してrailsのactiverecord最高!と言っていたので世の中複雑です…

2015-03-24 16:55:35
oranie @oranie

@oinume @dblmkt ほほう…そういう人だとヤバかったら自分で直すわーみたいなノリで便利と割り切れるのかなぁ。

2015-03-24 16:57:43
Hayato Matsuura @dblmkt

@oranie @oranie 使う側になるとActiveRecordは直感的に分かりやすいしいいですよねえ。。

2015-03-24 17:00:18
oranie @oranie

@dblmkt @oinume やはりkamipoさんに頑張ってもらうしか無いですな

2015-03-24 17:01:25