这是一个创建于 2298 天前的主题,其中的信息可能已经有所发展或是发生改变。
-
1.数据库建了 id 和 count_time 的联合索引
-
2.更新语句的条件部分是 where id= and count_time= 来更新的,更新的字段有一个建立了非聚集索引
-
3.涉及到 id 和 time 的表大概就几百万条数据,3 张表.
-
4.可能会有同时操作数据库的情况,但是不必担心锁的问题.
-
然后,300 条数据花了三十秒才更新完,求救.....
第 1 条附言 · 2018-11-20 09:11:48 +08:00
补充:对这些要更新的表会进行水平分表,例如 10 月的和 11 月的分成不同的表,我觉得这里可能有性能上的影响
第 2 条附言 · 2018-11-20 11:11:09 +08:00
解决了...数据库中有一个 count_date 字段,建了索引,改了条件语句为 where countdate= and id= and counttime=.数据库会先根据 countdate 过滤大部分数据,效率提升了 10 多倍......
2 条回复 • 2018-11-20 09:09:05 +08:00
 |
|
1
opengps 2018-11-20 08:08:39 +08:00 via Android
为什么不直接把那个联合索引改为聚集索引?
|
 |
|
2
nekoneko 2018-11-20 09:09:05 +08:00
@ opengps 因为是两个条件语句啊,一个 id,一个 count_time
|