这篇文章主要讲解了“Mysql分库分表的概念”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql分库分表的概念”吧!
范围拆分:比如订单表通过id拆分,id在1到100000在服务器a的order数据库,id在100001到200000存放在服务器b的order数据库,以此类推。
地理拆分:将订单表按照不同地区将表中的数据拆分到不同服务器的order数据库中存储。比如可以按照省份来进行拆分。
取模拆分:取模就是刚才水平分表讲到的比如有三个订单表,可以将id对3取余,但是区别在于水平分库分表是将同样的数据库和数据表存放在不同机器,所以说可以有效缓解单机瓶颈问题。
时间拆分:根据时间来拆分表中的数据,可以将表中创建时间超过一年的数据拆分到其他数据库的order数据库存储,原表中只保留被查询概率较高的数据,而这部分数据往往都是近期才创建的,所以可以通过时间拆分实现冷热数据分离。
分区
分区是什么意思呢?分区实际上是指同一个数据表中不同行的数据记录到不同的分区中,每个分区都有一个.idb文件,所以说分区可以帮助我们将一个数据表拆分成几个更小的部分。Mysql只支持局部索引分区不支持全局分区,mysql每一个分区既保存了数据,又存放了索引。MySQL分区主要分为以下几种:
RANGE分区:RANGE分区主要用于日期列的分区,是基于连续区间的列值来进行分区的。RANGE分区也是最常用的分区方式。
LIST分区:LIST分区列的值是散列的,也正是由于分区列的值是散列的所以需要手动定义分区列的值。
HASH分区:HASH分区就是通过自定义算法将数据均匀分布到不同分区,保证所有分区中数据大致相同。HASH分区只支持整数分区。
KEY分区:key分区使用数据库自带函数进行分区。KEY分区可支持BLOB和TEXT列之外的数据列分区。
分区的优点
与数据存放在单个磁盘相比,可以存储更多的数据。
对于那些已经失效的数据,通常可以通过删除对应的分区,来实现删除数据,这样比delete效率更高。
一些查询可以得到极大的优化,满足一个给定WHERE语句的数据可以只保存在一个分区内,这样在查找时就不用查找其他剩余的分区。
涉及聚合函数的查询,可以进行并行处理。意味着聚合函数查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。
感谢各位的阅读,以上就是“Mysql分库分表的概念”的内容了,经过本文的学习后,相信大家对Mysql分库分表的概念这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。