勉強したことのメモ

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

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

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

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 / MariaDB データベース

  関連記事

MySQLにてUUIDを発行しプライマリキー(主キー)にする方法
MySQLにてUUIDを発行しプライマリキー(主キー)にする方法

普段MySQLでプライマリキー(主キー)を使う場合、オートインクリメントを利用し ...

異なるVPS間でMySQLの接続を行う方法
異なるVPS間でMySQLの接続を行う方法

異なるVPS間でMySQL接続を行った際のメモ。   対応方法 さくら ...

mysqlで正規化できない時はシリアライズ使う
mysqlで正規化できない時はシリアライズ使う

アンケートか何かに機能追加している際、配列を カンマ区切りで結合して文字列でDB ...

MySQLでパターンマッチの逆
MySQLでパターンマッチの逆

LIKE検索の逆ってなったのでメモ。 NOT LIKE '%あああ%' が正解み ...

MySQLにてdatetime型のカラムを整形し「年月日のみ形式」または「秒のみ省いた形式」で表示する方法
MySQLにてdatetime型のカラムを整形し「年月日のみ形式」または「秒のみ省いた形式」で表示する方法

MySQLにてdatetime型のカラムに登録日時等を格納しており、管理画面側で ...