gpt4 book ai didi

mysql - 具有某些条件的 SQL 查询运行缓慢 - MySQL

转载 作者:行者123 更新时间:2023-11-29 03:19:06 25 4
gpt4 key购买 nike

这是我的问题,我有一个包含 1,230,000 记录的表,我正在我的应用程序中执行此查询

SELECT id_product 
FROM products
WHERE user_id = '322'
AND (status = 1 OR status = 3)
AND product_date BETWEEN '2017-11-01' AND '2017-12-31'
AND required = 0

此查询从表中获取 206 条记录(这是正确的),但它需要大约 4.5 秒,这太多了,因为我有时会在同一页面中多次使用不同的值进行此查询。

但如果我只这样做

SELECT id_product FROM products WHERE user_id = '322'

需要0.322秒

WHERE语句中的每一列都有一个索引,所以这是我的问题,真的有必要在查询中添加条件吗?因为在这种情况下我不明白这一点,我的意思是第一个查询只找到我需要的东西但它需要很长时间而第二个查询得到所有但我可以用我正在使用的编程语言制作过滤器或者你认为那里是我想念的东西吗?希望您能指导我,谢谢。

最佳答案

您可以查看文档以使用索引提示来强制您的查询使用或不使用这样的索引:

SELECT * FROM table1 USE INDEX (col1_index,col2_index)
WHERE col1=1 AND col2=2 AND col3=3;

SELECT * FROM table1 IGNORE INDEX (col3_index)
WHERE col1=1 AND col2=2 AND col3=3;

文档:https://dev.mysql.com/doc/refman/5.7/en/index-hints.html

此外,如果确实有必要,您可以创建一个更有效的索引,包括您的 WHERE 的其他字段。测试这两个选项,看看哪个更好。

关于mysql - 具有某些条件的 SQL 查询运行缓慢 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48223714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com