mysql单机考虑大数据优化,选择『分区』还是『分表』好

蕃薯 发布于 02/17 16:47
阅读 761
收藏 1

不考虑群集和分布式,目前只考虑单机,是选择『分区』还是『分表』好呢,为什么?

加载中
0
魔力猫
魔力猫

建议分区。前端不会因为分区分表造成大量硬编码;需要变更分区策略的时候,不用考虑前端代码;分区是系统内置的,未来进一步优化的可能很大。

魔力猫
魔力猫
回复 @蕃薯 : 单表1QW,你单分区1QW不就得了。分区关键在于你选择的分区策略和分区规则。合适,就可以把没次的扫描尽可能减少范围,不扫描范围外分区。分表?你要是分表策略选择错了,修改代价远远大于分区。
蕃薯
蕃薯
原本也是想选择分区,但又有人推荐分表,所以选择困难 一般建议单表建议上千万,如果分区后,可还受超过千万条记录而影响性能?可以上亿记录吗?
0
j
jun_anderson

当然是分表了

j
jun_anderson
mysql的分区表实际存储数据的时候只是把数据分成多个子部分写进不同的表空间文件,然后存储引擎通过整个表的句柄管理多个子部分数据,和正常单表的区别很大,特别是索引文件的组织方式。很多msyql查询的优化特性在分区表都是用不上的,性能特别差。
蕃薯
蕃薯
请教下不选分区是什么原因呢
0
JavaGG
JavaGG

分区还是分表得看你业务.

如果正好你要分的表是要搜索的,并按条件过滤..这样就分区好,尽量不要增加业务的复杂度

又例如要联表查找.这时分表就不合适了

0
骑着猪上高速
骑着猪上高速

分区对业务基本无影响,可以提升查询速度。如果查询压力大,要考虑增加吞吐量。分表会让业务变复杂,查询是一个考验,多个表查询再合并,分页的复杂度,分表可以将某个字段hash取模,再存到对应的分表中,减少查询复杂度。

0
q叉烧p
q叉烧p

建议分区,避免分表引入复杂度

返回顶部
顶部