mysql 大神来看,大表改分区存,这个语句没有问题吧?

2019-03-01 15:38:56 +08:00
 bluemartin
alter table `mytable` PARTITION BY RANGE(`id`)
(
PARTITION p1 VALUES LESS THAN(50000000),
PARTITION p2 VALUES LESS THAN(100000000),
PARTITION p3 VALUES LESS THAN(150000000)
)

5000 万一个分区,未来会有坑吗?
3488 次点击
所在节点    MySQL
6 条回复
xiaoxinshiwo
2019-03-01 16:34:41 +08:00
大于 150000000 的是不是给个分区?
Joyboo
2019-03-01 17:03:21 +08:00
PARTITION po VALUES LESS THAN MAXVALUE ENGINE = InnoDB
cs8814336
2019-03-04 09:22:06 +08:00
具体还是看查询的吧,假如你查询的条件没有 id,他还是会遍历所有分区数据(或者各个分区上的索引). 就好像 LSM TREE 的一个大树分成多个小树,耗时是会增加的,但是假如大树还有其他阻碍就不太清楚了
bluemartin
2019-03-11 10:54:18 +08:00
@xiaoxinshiwo 谢谢,这个是应该的。
bluemartin
2019-03-11 10:54:25 +08:00
@Joyboo 谢谢指导!
bluemartin
2019-03-11 10:55:08 +08:00
@cs8814336 您说的对,现在我们已经根据 memberid 来分区,这样查询时会避免遍历问题了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/540047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX