我有这个 SQL:
UPDATE products pr
SET pr.product_model_id = (SELECT id FROM product_models pm WHERE pm.category_id = 1 ORDER BY rand() LIMIT 1)
limit 200;
这 200 条记录花费了 mysql-server 超过 15 秒。在 tablem 中有 220,000 条记录。
这是为什么?
编辑:
我有这些空表,但我需要用随机信息填充它们以进行测试。
真实估计显示,我将拥有:
80 个类别
40,000 种型号
并且,大约 500,000 种产品
所以,我手动创建了:
- 所有类别。
- 200 个模型(并使用 sql 将它们复制到 20k)。
- 200 个产品(并将它们复制到 250k)
我需要它们都附上。
数据库表是:
categories {id, ...}
product_models {id, category_id, ...}
products {id, product_model_id, category_id}