我在表中有将近25000行问题,我还有以下查询。是否可以实现索引以提高查询效率。如果是,请给我一个示例代码。我在每个回车键上都有ajax调用。
SELECT question, url_question FROM `questions`
WHERE detail LIKE '%a%' OR question LIKE '%a%';
在字段上创建一个全文键,如以下
ALTER TABLE questions
ADD FULLTEXT KEY `detail` (`IX_detail`);
和
ALTER TABLE questions
ADD FULLTEXT KEY `question` (`IX_question`);
如果你想搜索单个字母,那就没办法了
从3开始,您可以使用全文搜索
您可以使用MySQL EXPLAIN函数优化查询-请参阅:http://dev.mysql.com/doc/refman/5.1/en/using-explain.html
连接到MySQL服务器并执行以下语句:
mysql> EXPLAIN $YOURSTATEMENTGOESHERE;
MySQL随后将返回一个有用的概述,概述受此语句影响的所有行/列。基于这些信息,您可以添加一些有效的索引。
同时阅读http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html以更好地了解MySQL如何使用索引。
如果可以的话,请检查搜索长度,如果字符串长度小于2或3,则不发送请求,这将停止不必要的请求,此外,您可以在sql查询中设置限制。它将提高的性能