勉強したことのメモ.

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で1対多というテーブル構造でデータ結合と条件検索する方法
MySQLで1対多というテーブル構造でデータ結合と条件検索する方法

MySQLで飲食店舗テーブルと休業日テーブルがあり、1店舗に対して複数行の休業日 ...

MySQLで指定カラムの文頭もしくは文末に文字を追記する方法
MySQLで指定カラムの文頭もしくは文末に文字を追記する方法

MySQLで特定カラムの文頭もしくは文末に年月日日時(YmdHis)を追記したい ...

MySQLでデータの集計時に1日の起点を任意の時間に変更する方法
MySQLでデータの集計時に1日の起点を任意の時間に変更する方法

MySQLで1日毎の集計を行う際、例えば2020/01/01のデータは2020/ ...

サイズが大きめのMySQLデータをレンタルサーバに移行する方法
サイズが大きめのMySQLデータをレンタルサーバに移行する方法

お名前.comのレンタルサーバにそこそこ大きいサイズのMySQLデータを移行した ...

MySQLで「doesn't have a default value」エラーの対処
MySQLで「doesn't have a default value」エラーの対処

MySQLでINSERT時に「Field 'カラム名' doesn't have ...