0

我有一个包含 1000 万条记录的表,这条记录每周更新一次,可能会减少或增加。

并且在这些记录上,我将不得不使用不同的 where 子句执行选择查询,并且执行速度非常慢。

什么是认为更新和删除查询必须执行大量的工作来更新和删除每列的索引。

所以为此我截断了表格并再次插入记录。但它需要相同的时间,所以任何人都可以为我提供顺利执行查询的建议。

我有一个非常简单的查询,但它需要太多时间(我正在使用 joomla 和 mysql)

SELECT *
FROM all_data
WHERE `stock` != 'Out of stock'
   AND `sitename` = 'something.com'
   AND `auction_time` = ''
   AND `type` != 'Accessories'
GROUP BY `offer_new_name`

提前致谢

4

1 回答 1

0

首先,在条件句中使用字符串比较是不好的。

您应该使用类似的代码

Out of Stock | 1

这样你就可以说:WHERE stock != 1这将保存一个字符串比较。类型字段也是如此。这将节省相当多的时间。如果您只有 3 或 4 种不同的状态或类型,那么做一个“查找表”通常是个好主意,那么您可以更快地查询它们。

Group By 也将放慢速度。查询只能做这么多,但最终你需要良好的数据库设计来让这些东西运行得更快。

于 2013-09-21T11:27:00.573 回答