分库分表的一些概念
最近小编了解了一下分库分表的知识,分享一下:
若一个表数据很多,这时候我们一般会分页查询
例如:
select * from order limit 0,10;
select * from order limit 2000,10;
一定数据下:如果单独执行这个sql你会发现执行的数据很快,但是如果分页很多的时候,你会发现这个时候也不是很快了,也没有很大的调优空间了,顶多大家也是建立一个索引,所以当表里面的数据很多的时候,大家考虑最多的是分库分表。
但是面对海量数据的时候,传统的调优手段有限的时候怎么办?
本期我们就讨论一下分库分表。
什么时候分库分表(轻量及的手段)
1.最终一致性是否可以满足实际场景;
2.数据未来几年的总量是否可以预估;
3.扩容、DDL等操作是否有系统维护窗口?
4.对响应时间是否比吞吐更敏感?
5.是否需要兼容已经有的关系数据库系统?
6.是否已有传统数据库DBA人才的积累
7.是否可以容忍分库分表对应用的侵入。
什么是分库?
分库的概念就是把:数据分散到多个库中,解放数据库的IO性能。
什么是分表?
将数据分散到多个表中,突破单表数据压力。
分库分表常用的组件
在分库分表的常用的组件:例如阿里的myCat,shardingSphere(唯一一个进入Apache顶级项目来做)
分库分表的方案:
垂直分片与水平分片
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |