我是 mySQL 的新手。 我有一个图书表,我希望用户能够搜索图书并找到特定的图书。
书籍表格列:
======================
出版商
作家
姓名
价格
出版日期
等等
我应该如何查询此表以找到一本特定的书以获得良好的性能?我现在正在做的是:
SELECT name,writer,publisher,price
FROM books
WHERE publisher='publisher'
AND writer='wirter'
AND name='name'
AND price<='price'
AND publishingdate>='publishingdate'
etc.
但是 AND 太多了,我认为这会杀死服务器。有没有更好的方法来搜索表? 谢谢
最佳答案
您应该为表添加索引以提高性能。
如果您希望支持对不同列进行广泛的用户指定搜索,您可以尝试分别为每一列编制索引。
如果在添加这些索引后您仍然发现某个特定查询运行缓慢,您可能需要添加一个多列索引,MySQL 可以使用它来提高该查询的性能。您可以使用 EXPLAIN
查看特定查询使用了哪些索引。
您还应该知道,添加索引可以提高读取性能,但也会降低写入表的性能。如果写入速度也很重要,则应注意不要添加很多未使用的索引。
相关
关于mysql - 大量的 AND 是否会成为 mySQL 中的性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383276/