【MySQL性能优化】概述与优化方面(一)【MySQL性能优化】概述与优化方面(一)
像sql语句如何进行调优,基本上在中高级程序员面试中都有可能会被问到。
所以说,了解,或者学习一下如何进行sql调优是必要的。
我会关于该sql调优文章出一个系列的博客。与大家一起学下去
首先不具体进行介绍,先大体的概括一下,因为答案基本是死的,但是处理方式是活的
MySQL性能优化/概述
1.数据库的设计
目前只要知道三范式就可以了
2.数据库的分表分库
分库分为两种,水平分割和垂直分割
分表是在同一个数据库当中,减少一个表的查询压力
3.怎么定位慢查询
如果需要知道定位在哪里进行sql调优,那么我们就需要慢查询了
4.数据库索引的优化、索引原理
5.sql的调优
6.数据库的读写分离
可以使用mycat中间件来做读写分离
7.存储过程、触发器、函数
存储过程你可以看成一块sql语句,一个整体,也就是执行很多条sql语句。
好处是安全性高,你看不到sql语句,你只需要传参就行了。其实一般也就银行项目用到。
弊端就是,sql语句都是写死的,不好灵活改变。
MySQL如何实现优化
1.数据库设计合理
首先第一点,数据库设计要合理,一般都要遵循三范式。
数据库设计基本上考察的是工作经验,如果你经验不足,可能数据库设计的不合理,导致开发困难。
2.添加索引
其次就是添加索引,如果不加索引,基本上查找都叫全表扫描
当你使用了索引时,索引底层使用的BTree,和折半查找算法差不多,可以减少全表扫描的时间
索引分为:普通索引,主键索引,唯一索引和全文索引
3.分表分库技术
还有就是分表分库技术,主要是为了减少单张的查询量。
在外面的核心是通过哈希移植性,也就是取模分表,还有水平分割,垂直分割
4.读写分离
还有就是读写分离
也就是读一个写一个,减少io量,提高io性能
5.存储过程
另外就是使用存储过程,比直接执行sql语句,使用jdbc连接效率高
这点基本
6.配置mysql最大连接数
其实就是并发的时候,提高了并发性能
一般在my.ini中配置
7.mysql服务器升级
也就是把服务器弄好一点
8.随时清理碎片化
9.sql语句的调优
其实也就是上面这九点。但是实际上需要我们调优的核心只有:
sql语句调优,添加索引,分表分库,读写分离,还有数据库设计
其他的都是小细节上面的
怎么实现优化,在后面的文章,我会一一道来