[解決済み] MySQLの "Can't reopen table "エラーの回避方法
質問
現在、ある種のフィルタを実装していますが、フィルタリングするすべての"tag"についてINNER JOIN句を生成する必要があります。
問題は、大量の SQL を実行した後、選択に必要なすべての情報を含むテーブルができましたが、生成された INNER JOIN のたびにその情報が必要になることです。
これは基本的に次のようなものです。
SELECT
*
FROM search
INNER JOIN search f1 ON f1.baseID = search.baseID AND f1.condition = condition1
INNER JOIN search f2 ON f2.baseID = search.baseID AND f2.condition = condition2
...
INNER JOIN search fN ON fN.baseID = search.baseID AND fN.condition = conditionN
これは動作しますが、私は "search" テーブルを一時的なものにしたいのですが(通常のテーブルでない場合、数桁小さくすることができます)、これは非常に迷惑なエラーを発生させることになります。
Can't reopen table
いろいろ調べてみると このバグレポート しかし、MySQLの人々は、このような基本的な機能(テーブルを複数回使用する)が一時テーブルで機能しないことを気にしていないようです。私はこの問題で多くのスケーラビリティの問題にぶつかっています。
たくさんの一時的なテーブルを管理したり、すべてのデータを含む巨大なテーブルを維持する必要がないような、実行可能な回避策はないでしょうか?
Krisさん、よろしくお願いします。
[追加]。
GROUP_CONCATの回答は、私の状況では機能しません。私の条件は、特定の順序で複数の列であり、それは私がANDである必要があるものをORにしてしまうからです。しかし、以前の問題を解決するのに役立ったので、今では一時的であろうとなかろうと、テーブルは必要なくなりました。私たちの問題に対して、あまりにも一般的な考え方をしていただけなのです。フィルタの適用が、1分前後から1/4秒以下に短縮されたのです。
どのように解決するのか?
MariaDB (MySQL のフォーク) に切り替えることが可能であれば、バージョン 10.2.1 でこの問題は修正されています。 https://jira.mariadb.org/browse/MDEV-5535 .
関連
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み】Fatal error: mysqldをrootで実行する方法は、マニュアルの「セキュリティ」セクションをお読みください。
-
[解決済み】MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175のエラーが発生しました。
-
[解決済み】MySQLで日付を比較する
-
[解決済み] JDBC経由でMySQLにUTF-8を挿入しようとすると、"不正な文字列値 "と表示される?
-
[解決済み] ルートユーザーでログインしているのに、phpMyAdminがデータベースを作成する権限がないと言う
-
[解決済み] dpkg: error processing package mysql-server (dependency problems)?
-
[解決済み] 1行目の列 'id' に不正な整数値 '' があります。
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み】MySQLのテーブル、インデックス、データを複製する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】1052:フィールドリストの列「id」が曖昧である
-
[解決済み】MySQLユーザーDBにパスワードカラムがない - OSXへのMySQLインストール
-
[解決済み] MySQLのforeachループ
-
[解決済み] mysql.pluginテーブルを開くことができません。mysql_upgradeを実行し、作成してください。
-
[解決済み] ERROR 1148: 使用されたコマンドはこのMySQLバージョンでは許可されていません。
-
[解決済み] JDBC経由でMySQLにUTF-8を挿入しようとすると、"不正な文字列値 "と表示される?
-
[解決済み] ルートユーザーでログインしているのに、phpMyAdminがデータベースを作成する権限がないと言う
-
[解決済み] エラー 1049 (42000)。不明なデータベース
-
[解決済み] MongoDBのようにMySQLにもTTLがあるのでしょうか?
-
[解決済み] エラー 2005 (hy000)。Google Cloud SQL クライアントの MySQL サーバーホスト '[35.232.51.216]' (0) が不明です。