勉強したことのメモ

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で指定カラムの文頭もしくは文末に文字を追記する方法
MySQLで指定カラムの文頭もしくは文末に文字を追記する方法

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

PHPからMySQLに接続する際「getaddrinfo for xxxxxx failed」エラーの対応方法
PHPからMySQLに接続する際「getaddrinfo for xxxxxx failed」エラーの対応方法

Podmanコンテナ環境で直前まではPHP→MySQL接続できていたのに「pod ...

MySQLでdatetime型データの〇日後を取得する方法(DATEDIFF)
MySQLでdatetime型データの〇日後を取得する方法(DATEDIFF)

MySQLでdatetime型データがあり、何日経過しているかを取得し、〇日経過 ...

MySQLにて指定したカラムがNULLもしくは空の場合、あらかじめ決めておいた内容で表示する方法
MySQLにて指定したカラムがNULLもしくは空の場合、あらかじめ決めておいた内容で表示する方法

何らかのフォームとMySQLを組み合わせた際に任意入力の項目はそのカラムがNUL ...

MySQLのview(ビュー)で仮想的なテーブルを作成する方法
MySQLのview(ビュー)で仮想的なテーブルを作成する方法

MySQL関連のサイトを見ているとview(ビュー)が云々という記事を見かけた。 ...