A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

六、Mysql优化——分表
水平分表:
定义当一个表很大时我们创建索引后,查询速度还是很慢, 把一个巨大的表安装某个标准分割成小表,这样可以提供查询的速度。(对用户id求余)
C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/4aa29cba335648d8b5a9e8a72ed4a86f/wps14.tmp.jpeg

垂直分表:
目的:减少表字段长度

七、分区的算法

1、 分区
分区实在表定义的时候声明的

2、分区语法
create table 表名()engine=myisam charset=utf8 partition by 分区算法(字段) 分区选项;

3、分区算法种类
①、key分区。

C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/f22f66ede256459cb3d21e352be5e24a/clipboard.png
②、hash分区
和key方式一样,通过key方式取余。
③、list分区
C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/e8f0c6ff300346fa86fd8c86217c280b/clipboard.png

④、range分区

C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/7e4a13afbe87448aa6b87a161de74f1d/clipboard.png
✔分区字段必须是 主键

4、分区管理
①、取余管理(key和hash)
删除分区,数据不会丢失;
增加分区数量:alter  table  表名  add  partition  partitions  N
减少分区数量:alter  table  表名  coalesce  partition  N
②、条件策略(list和range)
删除分区,数据会丢失;
删除分区:alter  table 表名  drop  partition  分区名;
添加分区:alter table 表名 add partition(partition 分区名 values )

八、mysql中的执行计划

定义:MySQL提供了EXPLAIN语法用来进行查询分析SQL语句涉及多少行、使用哪些索引、运行时间。
语法:explain 待分析SQL语句(如果待分析SQL语句后面写\G不要加分号)
C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/1ae62f327f2941a4bbc33a37cac9ee30/clipboard.png

分析查看类型:
C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/0f2dcd19f2d143e2a456aac44c72bb3e/wps1fc4.tmp.jpeg


九、如何查询需要优化的SQL语句——慢查询日志
1、查看慢查询日志是否开启;
C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/aa63d8b8221643b4975300ac1e77cf0c/clipboard.png

2、手动开启慢查询日志:set global slow_query_log = 1;
C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/779fbd95119241f98c61600c05869165/clipboard.png

3、设置查询的临界时间(查询超过指定时间后记录)
C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/b058f47bff174866a0504dcf80edca8c/clipboard.png


C:/Users/wendy/AppData/Local/YNote/data/m18956210239@163.com/d00a1940101e47fea6ea6ce20fb5476d/clipboard.png


十:面试问题

1、问现在网站打开比较慢你如何优化?
1)通过CDN加速静态资源访问
2)开启expires和gzip压缩
3)降低MySQL压力(主从复制、读写分离)
4)Nginx实现负载均衡和动静分离
5)开启慢查询日志,检查是否存在问题SQL语句


Mysql优化就总结这么多,面试前可以准备准备哦

学习中遇到问题,欢迎提问交流

您需要登录后才可以回帖 登录 | 加入黑马