betweenはええ!
sitemap生成するときに、
50000毎に分割してlimit offsetとかすることがあったんだが、
limit offsetだと、先頭からoffset位置まで全行確認しちゃうんだね。
MyISAM馬鹿すぎだろ・・・
って感じだが、
limit offsetの代わりにbetweenで範囲指定するとその範囲の読み込みだけで済むんだね。
行数が多くなると全然違うわ。
まあ、行番号の入ったカラムがあって、
抜け番が少ない場合にしか使えないが、
50000行限定で抽出できるからandで別条件入れても安定するわ。
slow queryのヤバい箇所があったが、
そんな感じで修正した。
抜け番多いクエリはsitemap外した。
抜け番多い場合も、事前に専用table作っておけばできるね。
一昨日autoincrementの行番号カラムいくつか削除しちゃったが、
sitemap用に使えるのは復活させた。
9200万行とかのは不要だったから良かったわ。
あれは作業20時間かかった。
先日の変更は、
インデックス1GB大幅に上回る削減ができた。
データ量はまんまbigint分減った程度だからそれほど減らなかった。