2016 - 2024

感恩一路有你

mysql 分区缺点 mysql分区表和分表哪个好?

浏览量:2864 时间:2023-04-09 21:27:17 作者:采采

mysql分区表和分表哪个好?

谢谢邀请我。如果资产记录表是基于常识的话,首先里面的数据不应该定期清理。根据你目前的数据量,可以算出一个月1500万-2000万左右有一定增长率的数据量。

建议初期可以考虑月表或者哈希表。分区表临时顶下的数据量突然增加,作为临时方案是可以的。让 让我们考虑制作一张长期稳定的桌子。

mysql中,分表查询和索引查询哪个更快?

子表和索引不是一个可选择的问题。通常使用MySQL时(其他数据库也是如此),大多数情况下必须增加索引。好处是查询速度大大提高,数据越多越明显。缺点是会在一定程度上影响添加、修改、删除的速度,但这种影响相对于查询效率的提升来说不值一提。

当单个表的数据量进一步增加,比如增加到几千万或者上亿的级别,单个MySQL已经不足以支撑这么多的数据了。这时候就要考虑分区、表或者数据库了。当然,分表后,每个子表中仍然可以有索引。

如果非要说分表查询和索引查询哪个更快,在数据量没有达到分表的水平时,比如只有一百万的数据量,我觉得索引查询更快。毕竟分表查询也需要程序路由到数据所在的分区,同样需要时间。

告诉我更多关于表拆分的信息。当MySQL单表数据量小于1000万时,性能更好。超过1000万,性能就会下降。超过5000万或者6000万的时候,性能下降会更明显。这是要考虑表拆分的。

表拆分的另一个好处是单台服务器的性能毕竟有限,比如磁盘的IO。表拆分后,子表部署在不同的磁盘上(或者直接分库),可以利用多台服务器的资源,更好地支持高并发。

数据库和表划分的常用策略:范围划分:按照一个字段的区间进行划分。比如按照id,一个分区从1到10万,一个分区从10万到20万。

哈希分区:定义一个表达式,并对表达式的结果进行分区。例如,如果id是整数的模,则结果是1的分区,结果是2的分区。

业务领域划分:这个很好理解。在业务数据中选择一个适当的字段作为分区字段。比如按照公司代码,公司代码1(北京)是分区,公司代码2(天津)是分区;当然,公司名称北京/天津等字段一般不选;但是,这种分表策略不能保证平均数据。比如北京有5000万数据,天津有500万数据。

虽然表/数据库拆分看起来很美,但是也存在很多问题:跨数据库关联、分布式事务、结果集合并/排序等等,这些都是需要考虑和解决的。

我会继续分享Java开发,架构设计,程序员职业发展等等。希望得到大家的关注。

数据 数据量 数据库 分表

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。