Mysql优化
1.索引的含义及特点:
*索引是一种对数据库表中一列或多列的值进行排序并独立存储在磁盘中的数据结构
*索引是通过数据库引擎实现的,不同数据库引擎具有不用的索引实现方式
*索引的存储结构主要有BTree和Hash两种
*MyISAM和InnoDB索引使用BTree,Memory使用Hash
2.索引的优点:
*加快数据的查询速度
*加快表与表之间连接的速度
*加快分组和排序的速度
3.索引的缺点:
*创建和维护索引需要时间
*索引需要占用磁盘空间
*对数据库表中记录增删改时,需要动态维护索引
4.索引的分类:
*普通索引和唯一索引(不允许重复,但允许为空)
*单列索引和组合索引(遵循最左前缀原则)
*全文索引(可在列中进行某值的全文查找)——MyISAM
*空间索引——MyISAM
5.索引的设计原则
*并非索引越多越好
*当数据库表中记录经常修改时,不宜使用索引
*当数据库表中记录较少时,不宜使用索引
*当数据库表中记录的不用值较少时,不宜使用索引
*当数据库表中记录具有唯一性的特性时,使用唯一索引
*当数据库表中具有较多的分组和排序操作时,使用索引
6.查询优化
*使用DESC或EXPLAIN分析查询语句
*Mysql提高查询效率最有效的方式是使用索引
*考虑索引失效的几种情况
*优化子查询:使用连接查询替代子查询
7.索引失效的几种情况
*LIKE语句中’%‘出现在匹配的第一个字段;
*组合索引不遵循最左前缀原则
*OR关键字前后的值都得有索引
*数据库中记录较少时
8.数据库结构优化
*将具有很多字段的表拆分成多个表
*增加中间表
*增加冗余字段
*优化数据插入速度
*分析(ANALYZE)、检查(CHECK)、优化(OPTIMISE)表——查看关键字分布、查看是否有错误、优化数据库表空间
9.优化数据插入速度
*MyISAM
*禁用索引
*禁用唯一性检查
*使用多值插入
*使用Load IN File
*InnoDB
*禁用唯一性检查
*禁用外键
*禁止事务提交
10.Mysql服务器优化
*硬件升级
*参数调优