MySQL 千万级的大表优化

Mysql对于大表的优化有很多方法和方案,所以要清楚的知道目前Mysql的版本、性能、问题与瓶颈。再认真分析目前的问题或未来可能遇到的问题,制定优化的目标,确定优化方法与方案。根据大牛的经验,进行了简单的总结,如下:

第一优化你的sql和索引

       这一步优化可解燃眉之急,高效、成本低、回报高,特别是对查询业务。需要精通SQL与索引的相关知识。

第二加缓存,memcached,redis

      这一步需要稍微改变程序架构,需要部署缓存服务,但是成本低、回报快。

第三主从复制或主主复制,读写分离,可以在应用层做,效率高。

      这一步需要稍微改变程序架构,同时需要部署多个Mysql服务,成本有所提升、到这一步基本可以解决大部分非高并发非超大数据项目。

第四mysql自带分区表。

分区表对你的应用是透明的,无需更改代码,但是sql语句是需要针对分区表做优化的,sql条件中要带上分区条件的列,从而使查询定位到少量的分区上,否则就会扫描全部分区,另外分区表还有一些坑,在这里就不多说了;

第五垂直拆分

其实就是根据你模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统;

第六水平切分

针对数据量大的表,这一步最麻烦,最能考验技术水平,要选择一个合理的sharding key,为了有好的查询效率,表结构也要改动,做一定的冗余,应用也要改,sql中尽量带sharding key,将数据定位到限定的表上去查,而不是扫描全部的表。

以上步骤,是一个递进的关系,在mysql优化过程中,作为程序员或DBA,若是架构改动成本太高或是时间不允许的情况下,那就优化 SQL和索引吧,毕竟这一步是最容易做的,当然对于大型项目来说,优化SQL和索引并非易事。咬咬牙,收获会很多!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值