我正在使用 MySql 8。我想加快对表格的搜索速度
select * FROM dirctory_coop where name like '%mystr%';
有人提到使用全文搜索 - https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html。但是,我对此有疑问。下面是我的表...
mysql> desc directory_coop;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(250) | NO | | NULL | |
| enabled | tinyint(1) | NO | | NULL | |
| phone_id | int | YES | MUL | NULL | |
| email_id | int | YES | MUL | NULL | |
| web_site | longtext | NO | | NULL | |
+----------+--------------+------+-----+---------+----------------+
我尝试了以下语句来更新我的列定义,但出现以下错误...
mysql> alter table directory_coop modify column name FULLTEXT;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULLTEXT' at line 1
mysql> alter table directory_coop modify name FULLTEXT;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULLTEXT' at line 1
我还需要做什么来启用全文搜索应该提供的性能优化?
您必须添加或创建一个像
有关更多信息,请阅读手册ALTER TABLE
您必须做的第一件事是创建一个
FULLTEXT
索引,如下所示:这只是开始。
您需要做的下一件事是了解使用
FULLTEXT
索引的 SQL 语法。请阅读关于全文索引的 MySQL 文档
我在 DBA StackExchange 中有很多关于使用它们的帖子。
这是一个很好的例子:为什么全文搜索返回的行数比 LIKE 少。这将向您展示使用 LIKE 和使用 MATCH 函数之间的区别。
我仍然建议在阅读我的帖子之前阅读 MySQL 文档。
警告
请注意InnoDB FULLTEXT Index 中不包含 36 个单词。
我在 DBA StackExchange 中提到过两次
Aug 05, 2019
:获取 InnoDB 全文索引的停用词May 05, 2018
: Mysql全文搜索不返回任何结果