この記事はエムスリー Advent Calendar2022の30日目の記事です。 前日は id:kijuky による チームメンバーのGoogleカレンダーの休暇予定一覧をスプレッドシート+GASで作った でした。AI・機械学習チームの北川(@kitagry)です。 今回はMySQLへのインサートを20倍以上高速化した話について書きます。仕事をちゃんとしてるか見張る猫 TL; DR はじめに 今回のテーブル バイナリログを無効化する 追試 LOAD DATA INFILE 追試 テーブルの正規化 インデックスを一時的に剥がす まとめ We are hiring!! TL; DR バイナリログをオフにする LOAD DATA INFILEを使う インデックスを一時的に消す はじめにAI・機械学習チームではサイトトップからアプリに至るまで多くの推薦システムがあります。 そこでは推薦ロ

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?mysqlのInnoDBではclustered indexというのを採用していて、indexを貼る際に注意が必要ということでメモ 結論から言うと InnoDBでは... Primary Key(以下PK)はできるかぎり設定して、できるかぎりauto_incrementの整数型が良い PKの検索は速いが、secondary indexやcount(*)での検索は若干遅い PKのupdateは避ける 無闇やたらとsecondary indexを付けない covering indexを狙えると速い かんたんに解説 図とか用意したかったけど気力

► 2018 (1) ► 1月 (1) ► 2017 (4) ► 6月 (3) ► 5月 (1) ► 2016 (15) ► 12月 (4) ► 11月 (1) ► 10月 (2) ► 7月 (3) ► 6月 (1) ► 5月 (3) ► 1月 (1) ► 2015 (13) ► 12月 (1) ► 10月 (1) ► 9月 (1) ► 6月 (1) ► 5月 (1) ► 3月 (2) ► 2月 (3) ► 1月 (3) ► 2014 (11) ► 12月 (1) ► 9月 (2) ► 8月 (2) ► 6月 (1) ► 4月 (4) ► 2月 (1) ► 2013 (15) ► 12月 (3) ► 11月 (3) ► 8月 (2) ► 7月 (4) ► 5月 (1) ► 4月 (2) ► 2012 (7) ► 10月 (1) ► 7月 (1) ► 4月 (3) ► 1月 (2) ► 20
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
結論: MEMORY ストレージエンジンの index_type はデフォルトで HASH なので = or <=>演算子を使用する等価比較にのみ使用される。 >, >=, <, <=, BTWEEN を使うクエリでインデックスを使いたいときは USING BTREE をつけてインデックスを作ること。MySQL 5.0.75 (やや古めかしい?)を使っていて、 MEMORY ストレージエンジンのテーブルに対して、 SELECT * FROM tbl WHERE col1 = 'val1' AND col2 <= 'val2';なんてクエリを実行したら妙に遅かった。 col1, col2 の順番で複合インデックスをはっているにもかかわらず。マニュアル読んだらちゃんと書いてありました。あんまり使う機会もないだろうけど(だからこそ?)メモ。 その名前からもわかるように、MEMORY テーブルは
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く