MySQLのTEMPORARY TABLE(テンポラリテーブル)で高速化を図る方法
2024/05/18
MySQLで5000万件ぐらいデータが入っているテーブルから日本語検索しないといけないケースがあった。検索の際、非常に時間がかかるので対応方法が無いか調べたところTEMPORARY TABLE(テンポラリテーブル)を用いることで多少改善できた。以下に対応方法をメモ。
ソースコード
$sql = '
CREATE TEMPORARY TABLE tmp_table
SELECT *
FROM aaa_table
WHERE hogehoge LIKE "%検索文字列%"
';
$row = mysql_query($sql);
$sql = '
SELECT *
FROM tmp_table
WHERE time < now()
';
リファレンス
https://dev.mysql.com/doc/refman/8.0/ja/create-temporary-table.html
参考サイト
関連記事
-
-
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...
-
-
MySQLで指定の順にデータをソートする方法(ORDER BY FIELD)
MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...
-
-
MySQLでデータがあれば上書き、無ければ挿入する
既存のソースを編集時に「REPLACE INTO~~」 という見たことの無いSQ ...
-
-
MySQLで日時や日付で範囲検索する際に動作速度を向上させる方法
MySQLでログ系等の大量にデータが格納されているテーブルから日時や日付で範囲検 ...
-
-
MySQLで「Incorrect integer value: '' for column」エラーの対応方法
MySQLで「Incorrect integer value: '' for c ...