MySQL优化详解(五)——MySQL分库分表

天继续给大家介绍MySQL相关知识,本文主要内容是MySQL数据库的分库和分表思路。

一、分库分表基本原理

分库和分表就是将本来在一个数据库上存储的表,分散存储到多个数据库上。分库和分表可以显著降低MySQL数据库的存储压力,当数据库中的数据存储量越来越多时,不仅可能超出磁盘的存储空间大小,还可能对数据的增删改查操作性能造成极大的影响。因此,当一台设备上的硬件资源,达到了数据库的瓶颈时,就可以考虑进行分库和分表。
分库可以在前端简单的实现,例如,根据ID来进行分库,单数ID的数据存储在一个分库中,奇数ID的数据存储在另一个分库中。

二、分库分表存在的问题

但是,分库和分表也会带来一些问题,主要有以下三个方面:
1、事务问题
在进行分库和分表后,由于数据存储到了不同的数据库上,因此数据库事务管理上存在极大的困难。如果依赖数据库本身的分布式事务管理功能,将会付出很大的性能开销,而如果在编程端由应用程序实现逻辑上的事务操作,又会给开发人员造成额外负担。
2、跨库、跨表的联合查询问题
在进行分库和分表后,不同的数据表可能会分散存储在不同的数据库中,如果这些表有一定的关联性,那么在进行联表查询的时候,就无法join位于不同数据库的表,只能将原来一次查询可以完成的业务,拆分成多次查询。
3、额外的数据管理负担和数据运算压力
当进行分裤和分表后,如果要对数据库中的内容进行统计操作,则会带来非常大的开销,例如,计算学生成绩表中的平均分、查找学习成绩最好的10个学生等操作,本来在一个数据表上可以直接查询得到,但是如果我们将这些信息存储到了不同的数据表中,我们就需要通过多次查询,并进行额外的数据处理后,才可以得到结果。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值