课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
学习如何使用数据库是每一个后端编程开发程序员都应该熟练掌握的一个编程开发技术,而本文我们就通过案例分析来简单了解一下,MySQL数据库常见优化方法。
1、Mysql常见的优化手段
当然,我们先要进行的优化是基于Mysql本身的优化,常见的优化手段有:
增加索引,索引是直观也是快速优化检索效率的方式。
基于Sql语句的优化,比如左匹配原则,用索引字段查询、降低sql语句的复杂度等
表的合理设计,比如符合三范式、或者为了一定的效率破坏三范式设计等
数据库参数优化,比如并发连接数、数据刷盘策略、调整缓存大小
数据库服务器硬件升级
mysql大家主从复制方案,实现读写分离
这些常见的优化手段,在数据量较小的情况下效果非常好,但是数据量到达一定瓶颈时,常规的优化手段已经解决不了实际问题,那怎么办呢?
2、大数据表优化方案
对于大数据表的优化直观的方式就是减少单表数据量,所以常见的解决方案是:
分库分表,大表拆小表。
冷热数据分离,所谓的冷热数据,其实就是根据访问频次来划分的,访问频次较多的数据是热数据,访问频次少的数据是冷数据。冷热数据分离就是把这两类数据分离到不同的表中,从而减少热数据表的大小。
其实在很多地方大家都能看到类似的实现,比如去一些网站查询订单或者交易记录,默认只允许查询1到3个月,3个月之前的数据,基本上大家都很少关心,访问频次较少,所以可以把3个月之前的数据保存到冷库中。
历史数据归档,简单来说就是把时间比较久远的数据分离出来存档,保证实时库的数据的有效生命周期。
其实这些解决方案都是属于偏业务类的方案,并不完全是技术上的方案,所以在实施的时候,需要根据业务的特性来选择合适的方式。
3、详解分库分表
分库分表是非常常见针对单个数据表数据量过大的优化方式,它的核心思想是把一个大的数据表拆分成多个小的数据表,这个过程也叫(数据分片),它的本质其实有点类似于传统数据库中的分区表,比如mysql和oracle都支持分区表机制。
分库分表是一种水平扩展手段,每个分片上包含原来总的数据集的一个子集。这种分而治之的思想在技术中很常见,比如多CPU、分布式架构、分布式缓存等等,像前面我们讲rediscluster集群时,slot槽的分配就是一种数据分片的思想。
水平拆分,基于表或字段划分,表结构不同,有单库的分表,也有多库的分库。
垂直拆分,基于数据划分,表结构相同,数据不同,也有同库的水平切分和多库的切分。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。