MySQL 中大数据量的情况下更新问题
資深大佬 : situliang 1
关于在 MySQL 中几十万数据量的情况下更新问题,想请教一下各位大佬
以下面两个表为例
server 表
| server_id | price | food_id |
|---|---|---|
| 1 | 1600 | 5 |
| 2 | 12 | 12 |
| 3 | 4 | 1 |
| 4 | 2 | 3 |
| 5 | 6 | 5 |
| .. | .. | .. |
food 表
| food_id | type |
|---|---|
| 1 | Fruit |
| 2 | Vegetable |
| 3 | drink |
| 4 | Fruit |
| 5 | Vegetable |
| 6 | drink |
| .. | .. |
目前的需求就是需要将 server 表中 food 类型为 Fruit 和 Vegetable 的 food_id 记录更新 price 为 0 常规的 SQL 可以下面这样
UPDATE server SET price = 0 WHERE food_id IN (SELECT food_id FROM food WHERE type = 'Fruit' OR type = 'Vegetable');
但是当 server 表有几十万条记录,food 表有几万条数据的时候,执行了几个小时还没执行完,不知道老哥们有啥好的快速方案吗,可以加表什么的
大佬有話說 (10)