ここでは、次のようにそこにある tracking_no の次のテーブルに結合したいと思います
SELECT *
FROM tracker_mngr AS pkgdsp
LEFT JOIN tracker AS taq ON taq.tracking_no LIKE CONCAT('%', pkgdsp.tracking_no ,'%')
ただし、クエリの実行には時間がかかります。以下はテーブル構造です
テーブル構造:
CREATE TABLE `tracker_mngr` (
`id_package_dispatching` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`tracking_no` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`id_package_dispatching`),
) ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE `tracker` (
`tracking_no` VARCHAR(50) NOT NULL DEFAULT '',
`status` VARCHAR(100) NOT NULL DEFAULT '',
`status_input_date` VARCHAR(15) NOT NULL DEFAULT '',
`status_input_time` VARCHAR(4) NOT NULL DEFAULT '',
PRIMARY KEY (`tracking_no`,`status`,`status_input_date`,`status_input_time`),
UNIQUE KEY `idx_tracking_no_status_01` (`tracking_no`,`status`,`status_input_date`,`status_input_time`),
KEY `idx_tracking_no_01` (`tracking_no`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
しかし、私は tracker_mngr テーブルにインデックスを作成する権限を持っていません。
tracking_no A113035604231A A113035604220A-1 113036092514 113036092433-1
トラッカーには tracking_no が含まれます
tracking_no 113035604231 for (A113035604231A) 113035604220 for (A113035604220A-1) 113036092514 for (113036092514) 113036092433 for (113036092433-1)
これが私のクエリのExplainコマンドテーブルです
+----+-------------+--------+------+---------------+------+---------+------+--------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+------+---------------+------+---------+------+--------+-------+
| 1 | SIMPLE | pkgdsp | ALL | NULL | NULL | NULL | NULL | 127362 | |
| 1 | SIMPLE | taq | ALL | NULL | NULL | NULL | NULL | 79766 | |
+----+-------------+--------+------+---------------+------+---------+------+--------+-------+
しかし、実行に時間がかかり、インデックスを作成しましたが、上記の表に示すように、検索にインデックスを使用していません。どうすればこのクエリのパフォーマンスを向上させることができますか?