徐无忌MySQL笔记:案例实战:如何进行数据库优化并提升SQL查询性能?
完成:第一遍
1.数据库优化哪两个目的?
目的一:找出系统的瓶颈,提高MySQL数据库的整体性能
目的二:优化结构设计和参数调整,提高用户的响应速度,同时还要节约系统资源,让系统满足更高的负荷
2.数据库优化可以分为哪两类?
数据库优化可以大体分为软优化和硬优化
软优化一般是操作数据库即可,代码层面的
硬优化则是服务器硬件、数据库参数设置、架构设计
3.数据库软优化有哪几种?
软优化一:SQL语句优化
软优化二:在MySQL中尽量使用JOIN来代替子查询,因为子查询需要嵌套查询
嵌套查询时会建立一张临时表,临时表的建立和删除都会有较大的系统开销,而连接查询不会创建临时表,因此效率比嵌套子查询高
软优化三:索引是提高数据库查询速度最重要的方法之一
软优化四:表的设计中对于字段较多的表,如果某些字段使用频率较低,应该将其分离出来从而形成新的表,真的用的时候再用join语句查询,不用每一次都查询
4.使用索引有哪三大注意事项?
注意点一:like关键字匹配’%'开头的字符串,不会使用索引
注意点二:or关键字用到的两个字段必须都是用了索引,该查询才会使用索引
注意点三:使用多列索引必须满足最左匹配
3.数据库硬优化有哪几种?
从硬件出发:
硬优化一:配置多核心和频率高的cpu,多核心可以执行多个线程
硬优化二:配置大内存,提高内存,即可提高缓存区容量,因此能减少磁盘I/O时间,从而提高响应速度
硬优化三:配置高速磁盘或合理分布磁盘,高速磁盘提高I/O,分布磁盘能提高并行操作的能力
从架构角度:
硬优化四:分库分表、读写分离
从集群角度:
硬优化五:在Web服务器和DB之间放置多个缓存集群如Redis,减少DB压力,增强反应速度