##わからないこと
いつもお世話になっております。
この度mysqlのエンジンがmyisamの速度改善をしようとしています。
そこで苦戦をしていまして、下記の構造をしたテーブルからのselectにて33秒かかっています。
Table: fulltexts Create Table: CREATE TABLE `fulltexts` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `main_id` bigint(20) unsigned NOT NULL, `type` enum('att','cli','ent','job','sume') COLLATE utf8_unicode_c i DEFAULT NULL, `phase_id` bigint(20) NOT NULL DEFAULT '0', `data` longtext COLLATE utf8_unicode_ci NOT NULL, `index` longtext COLLATE utf8_unicode_ci NOT NULL, `time` double(16,6) unsigned NOT NULL, `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `fulltexts_main_id_type_unique` (`main_id`,`type`), KEY `type_index` (`type`), KEY `fulltexts_phase_id_index` (`ase_id`), KEY `time_index` (`time`), FULLTEXT KEY `index` (`index`) ) ENGINE=MyISAM AUTO_INCREMENT=1680949 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode _ci
下記の構文でexplainをかけたところ
select `main_id`, `time` from `fulltexts` where `type` = 'job' and `main_id` in ('1550', '56774', '442221'といったように多数の値) and MATCH(`index`) AGAINST('\"東京 京都\"' IN BOOLEAN MODE);
フルテキストインデックスがインデックスに設定されます。
このようなテーブルの速度改善はどのように行えばよいでしょうか?
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー