gpt4 book ai didi

mysql - SQL大查询优化

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

我有以下查询:

SELECT `Product_has_ProductFeature`.`productId`, `Product_has_ProductFeature`.`productFeatureId`, `Product_has_ProductFeature`.`productFeatureValueId`
FROM `Product_has_ProductFeature`
WHERE `productId` IN (...'18815', '18816', '18817', '18818', '18819', '18820', '18821', '18822', '18823', '18824', '18825', '18826', '18827', '18828', '18829', '18830', '18831', '18832', '18833', '18834'..)

我有大约 50000 个产品 ID。执行时间为 20 秒。我怎样才能让它更快?

最佳答案

这更像是一条评论。

返回 50,000 行可能需要一些时间,具体取决于您的应用程序、行大小、网络以及服务器的繁忙程度。

进行比较时,应确保值具有相同类型。因此,如果 productId 是数字,则删除单引号。

如果值都是连续的,则避开列表,只需执行以下操作:

where productid >= 18815 and productid <= 18834

最后,通常建议在 productid 上建立索引。然而,在某些情况下,索引可能会使性能变差。这取决于数据的大小以及可用于页面和数据缓存的内存大小。

MySQL 高效地实现了in(使用二叉树)。大部分开销可能是编译查询而不是执行查询。如果表中有值,连接可能会更有效。

关于mysql - SQL大查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500583/

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