勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLのTEMPORARY TABLE(テンポラリテーブル)で高速化を図る方法

   2024/05/18  MySQL データベース

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

 

参考サイト

https://pgmemo.tokyo/data/archives/11.html

 - MySQL データベース

  関連記事

MySQLで検索した件数の取得

ページングとかで必要になる総件数について、 いつもググってしまっていたのでメモ。 ...

MySQLで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法

phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回 ...

MySQLでカラム数の異なるテーブルを結合する(UNION)

MySQLでカラム数の異なるテーブル同士をUNIONで結合させたかった。ただ、何 ...

MySQLにてSELECT時にdate型のカラムから和暦を計算し表示する方法

MySQLにdate型のカラムに誕生年月日が格納されており、そこから和暦を計算し ...

MySQLでホスト指定しても正常に接続できない場合

MySQL自体は動いており、ユーザーも登録されているのに、ホスト名を指定しても正 ...