MySQLコマンドやSQL文に関する各種メモ書き

MariaDB 標準の 全文検索 FULLTEXT インデックスを張って高速検索する

● 全文テキストの最小マッチ文字をセットする

最小マッチ文字を2文字にセットする

[mysqld]
innodb_ft_min_token_size=2
ft_min_word_len=2

● MariaDB 標準の 全文検索 FULLTEXT インデックスを張って高速検索する

ALTER TABLE `テーブル名` ADD FULLTEXT(`カラム名`);

● 検索してみる

通常の検索 LIKE検索(遅い)

SELECT item_name AS `numrows`
FROM `item_dt`
WHERE
`item_name` LIKE '%SSD256GB%';

全文検索(速い)

SELECT item_name AS `numrows`
FROM `item_dt`
WHERE
MATCH(`item_name`) AGAINST( "+SSD256GB" IN BOOLEAN MODE);

● インデックスを再構築する

インデックスを削除 → インデックスを再度作成 を行ないます。

・1.インデックス一覧を表示

show index from 【テーブル名】;

・2.インデックスを削除

DROP INDEX 【インデックス名】 ON 【テーブル名】;

・3.インデックスを作成

ALTER TABLE `テーブル名` ADD FULLTEXT(`カラム名`);

関連エントリー

No.1893
11/06 11:15

edit

全文検索