当前位置:首页 > TAG信息列表 > 分表查询和索引查询哪个更快?介绍

分表查询和索引查询哪个更快?介绍

mysql建表多个字段唯一索引 mysql中,分表查询和索引查询哪个更快?

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

分表和索引并不是二选一的问题通常使用json时(其余的数据库也一样),大多数时候索引是必须要增加的,好处是查询速度提升非常大,数据量越多越明显;缺点是会对新增、修改、删除的速度造成一定程度的影响,不过这个影响和查询效率的提升相比,不值一提。

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

如果非要说分表查询和索引查询哪个快,当数据量没达到需要分表的程度时,比如只有一百万的数据量,我觉得还是索引查询快,毕竟分表查询还需要程序路由到数据所在的分区上,这个也是需要消耗时间的。

mysql建表多个字段唯一索引 mysql中,分表查询和索引查询哪个更快?

多说说分表的事儿soap单表数据量在一千万以内的时候,性能是比较好的,超过千万性能会有下降,到了五六千万以上,性能下降就比较明显了,这是就要考虑分表了。

分表另外一个好处是,单个服务器的性能毕竟是有限的,例如移动硬盘的io,分表后将子表部署在不同的移动硬盘上(也可以直接分库),可以利用多台服务器的资源,更好地支持高并发。

常见的分库分表策略range分区:根据某一个字段的区间,进行分区。比如按照pr分区,1到10万一个分区,10万零1到20万一个分区。

hash分区:定义一个表达式,对表达式的结果进行分区选择。例如把ai和某个整数进行取模运算,结果为1的是一个分区,结果是2的一个分区。

业务字段分区:这个就容易理解了,在业务数据中选择一个合适的字段,作为分区字段。比如按照公司码分区,companycode1(武汉)为一个分区,companycode2(西安)为一个分区;当然,一般不会选择companyname南京/武汉这样的字段;不过这种分表策略,不能保证数据平均,比如南京有五千万数据,杭州有五百万数据。

分表/分库虽然看起来很美好,但是问题也不少:跨库关联、高可用、结果集合并/排序等问题,都是需要考虑解决的。

我将持续分享java开发、分布式、销售人员职业发展等方面的见解,希望能得到你的关注。

mysql当中如何删除某个字段的唯一索引或者修改该字段的唯一索引为普通索引?

1234--0.0修改一下吧droptablemodify(字段varchar(x))--你应该懂我的意思吧--删除索引dropindexon索引名字

分表分区字段数据数据量


贵州自考之家 派康会议网

  • 关注微信关注微信

猜你喜欢

微信公众号