まずはきちんと作る。必要かどうかバッチリ判断できないデータはとりあえず残しておく。速度チューニング等はその後。 #phpcon2016
2016-11-03 13:38:20トランザクション分離レベル。DBスペシャリスト受けたときにやったなぁ。 #phpcon2016 #phpcon2016_2
2016-11-03 13:39:24MysqlはRepeatable read/ PostgreはRead Commetedがデフォルト。 ファントムリード・ダーティーリード知らない人は今すぐ勉強してください。あなたのコードにはバグがある可能性があります。 #phpcon2016 #phpcon2016_2
2016-11-03 13:40:51複数ブラウザオープン×同時アクセス/大量アクセス/並列処理 はロック実装してない人やばいですよ。 #phpcon2016 #phpcon2016_2
2016-11-03 13:43:04有名なECサイトでも対応されてないことが多いので、気をつけて! #phpcon2016 #phpcon2016_2
2016-11-03 13:43:45何回やっても再現しないというときは、並列で処理されてないか疑って見よう。 #phpcon2016 #phpcon2016_2
2016-11-03 13:45:45日付の変わり目でバッチ処理している場合も気をつけよう。 23:59に注文->00:00キャンセルで注文された商品は届くけど、返金もされるみたいなこと。 #phpcon2016 #phpcon2016_2
2016-11-03 13:48:11ロックするやつと参照するやつを分けると、今度は結果整合性に整合性レベルが落ちるんですよね。。 #phpcon2016 #phpcon2016_2
2016-11-03 13:48:52安易にロックを取りすぎて、開放待ちが頻繁に発生しないようにロックかけるテーブルを選ぶ必要がある。 #phpcon2016 #phpcon2016_2
2016-11-03 13:49:31意外と知らない暗黙のロックを意識しよう。そのためにトランザクション分離レベルを勉強しよう。 #phpcon2016 #phpcon2016_2
2016-11-03 13:50:18取らないよ! InnoDBはSELECTロックフリー! @soudai1025 #phpcon2016 #phpcon2016_2
2016-11-03 13:50:31MySQLのBulkインサートと行インサート #phpcon2016 #phpcon2016_2
2016-11-03 13:51:48autoincrementの場合、スーパーキーへのネクストキーロックじゃなくてautoinc_lockからの行ロックな気がするけど #phpcon2016 #phpcon2016_2
2016-11-03 13:52:08CPU上がってるのにクライアント数には余裕があるときは、ロックを疑ってみよう(他にもいっぱい原因はあるけど。) #phpcon2016 #phpcon2016_2
2016-11-03 13:53:22MySQLのロック待ち、そんなにCPU食う? (ロック待ち自体のCPUtimeより、コンテキストスイッチでやられる気がする) #phpcon2016 #phpcon2016_2
2016-11-03 13:53:25InnoDBはJOINとかサブクエリーでないかぎりSELECTロックフリーなので、非正規化するとロックが軽減されるというバッドノウハウ #phpcon2016 #phpcon2016_2
2016-11-03 13:54:19ロックはDBによって違うのでロックという仕組みをしっかり理解しよう。 #phpcon2016 #phpcon2016_2
2016-11-03 13:54:29これからの時代並列・分散処理が必須。ちゃんと仕組みを理解してシンプルな設計をしていこう。 #phpcon2016 #phpcon2016_2
2016-11-03 13:55:42RDBは積み木。最初に三角形や丸の積み木を置いたら詰む。 #phpcon2016 #phpcon2016_2
2016-11-03 13:56:18