mysql - 大量的 AND 是否会成为 mySQL 中的性能问题?

标签 mysql performance

我是 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/

相关文章:

MySQL 联合错误

具有不同主键值的 MYSQL 查询重复?

mysql - 当其他表上没有更多行时 SQL 删除行

c# - 循环访问数据库

c - 如何查看内存带宽是否已经成为瓶颈?

c# - 为什么第一次打开表格需要更长的时间?

java - 这个mysql查询是对还是错?

用于 Web 应用程序的 MySQL 与 PostgreSQL

eclipse - Eclipse 中的 Scala 执行时间

c - 如何处理条件初始化,这是一种好的做法吗?