- 2020/9/13 日曜日 12:12:28
- ISUCON
今年もISUCON10に山形組として参加してきました。
結果はベストスコア(1400ぐらい)もボーダーに届かないまま、ギリギリまで修正をいれてfailで終了ということになりました。
できたこと
– nginxでbotに503
– app2台、db1台構成
– UPDATEのWHEREにstock > 0
を追加してaffected rowsをみてbuyのFOR UPDATE外し
– recommendedを $w, $h, $dの昇順から2つとって(door_width >= %1 AND door_height >= %2) OR (door_height >= %2 AND door_width >= %1)に単純化
– nazotte検索をmysqlのPOINT型に変換してSPATIAL INDEXを貼ってクエリ一回で解決できるように
– 手当たり次第にindex
– index済みdumpデータを/initializeで読み込むように
– rangeId,priceId,widthIdみたいな検索をidで検索できるようにフィールド追加して変換
できなかったこと
– features検索にindexを効かせる施策。これは昇順sortしたidのカンマ区切り文字列にして完全一致検索にするものを実装したんだけどベンチ通らなくなってrollback。コードじゃなくてdumpデータがバグっていたのかも。
競技後気づいたこと
– CSV入稿時のbulk insert。普段の仕事では当たり前のようにやることなのに競技中は気づいてなかった。終わったあとに、ベンチの後半になると入稿のPOSTに時間がかかっていることに気づいて後悔
– ORDER BY `popularity` DESC , `id` ASC
対策。discord#random でほかの参加者の解法をみていてなるほどなぁ…と。popularityをマイナスにしてASCにしてしまうのとかすごいなと思いました。
今回は時間が足りてなかったというよりも競技中に気づけていなかったことが致命傷だったようで知識不足や認識力不足を感じましたし、まだまだ学ばないといけないことがあるなと。今あらためてDBのインデックスに関する基礎を学べる本を読むべきだと感じました。
運営のみなさま
今回もとても楽しませていただきました。(そしてとても悔しいです!)
来年またあれば参加したいです。ありがとうございました。
- 新しい: #isucon12 参戦記録
- 古い: #isucon9 参戦記録
コメント:0
トラックバック:0
- この記事のトラックバック URL
- https://blog.everqueue.com/chiba/2020/09/13/892/trackback/
- トラックバックの送信元リスト
- #isucon10 予選惨敗してきました - へぼい日記 より