我有一个MySQL表,为此我非常频繁地查询SELECT x, y, z FROM table WHERE x LIKE '%text%' OR y LIKE '%text%' OR z LIKE '%text%'
。任何种类的索引是否有助于加快速度?如何加快在多列MySQL中的SELECT .. LIKE查询?
表中有几百万条记录。如果有什么会加快搜索速度,是否会严重影响数据库文件的磁盘使用率以及INSERT
和DELETE
语句的速度? (无UPDATE
被执行过)
更新:发布之后很快,我已经看到了很多关于LIKE
在查询中使用信息的方式和讨论;我想指出,解决方案必须使用LIKE '%text%'
(也就是说,我正在查找的文本是前置的并附有%通配符)。数据库也必须是本地的,原因很多,包括安全性。
想想这样,它不是一个完美的比喻,但它表明了这一点。考虑在后面有一个词索引的书。如果你想查找一个简单的单词或者甚至是以相同的前几个字母开头的单词,那么没有问题。考虑当你想使用该书籍索引来查找包含单词中任何地方的字母“exe”的所有单词时会发生什么。这个索引几乎没有用,你可能会阅读真正的书来寻找这些词。这大致是你在mySQL上施加的问题。 – JohnFx