「MySQL」5年经验 Java 程序员面试都用得上的mysql优化手册


「MySQL」5年经验 Java 程序员面试都用得上的mysql优化手册
文章图片
「MySQL」5年经验 Java 程序员面试都用得上的mysql优化手册
文章图片
「MySQL」5年经验 Java 程序员面试都用得上的mysql优化手册
文章图片
「MySQL」5年经验 Java 程序员面试都用得上的mysql优化手册
mysql调优 , 在当今这个数据横流的时代 , 数据库的压力越来越大 , 而用户所追求的极致体验也进一步对数据库造成更大的压力 , 因此 , mysql调优也成为在当今社会面试的过程中常问的问题之一 。 你做好准备了吗?
前言:MySQL在过去由于性能高、成本低、可靠性好 , 已经成为最流行的开源数据库 , 因此被广泛地应用在Internet上的中小型网站中 。 随着MySQL的不断成熟 , 它也逐渐用于更多大规模网站和应用 。 非常流行的开源软件组合LAMP中的“M”指的就是MySQL 。 那在实际的生产环境中都有那些调优方法呢?我为大家整理以下14点以及3.6G学习视频和文档笔记 , 需要的朋友私信“资料”获取
优化建议1. 避免使用 select *
你需要什么信息 , 就查询什么信息 , 查询的多了 , 查询的速度肯定就会慢 。
2. 当你只需要查询出一条数据的时候要使用 limit 1
比如你要查询数据中是否有男生 , 只要查询一条含有男生的记录就行了 , 后面不需要再查了 , 使用Limit 1 可以在找到一条数据后停止搜索 。
3. 建立高性能的索引
【「MySQL」5年经验 Java 程序员面试都用得上的mysql优化手册】索引不是随便加的也不是索引越多越好 , 更不是所有索引对查询都有效 。
4. 建数据库表时给字段设置固定合适的大小
字段不能设置的太大 , 设置太大就造成浪费会使查询速度变慢 。
5. 要尽量使用not null
6. EXPLAIN 你的 SELECT 查询
使用EXPLAIN , 可以帮助你更了解MySQL是如何处理你的sql语句的 , 你可以查看到sql的执行计划 , 这样你就能更好的去了解你的sql语句的不足 , 然后优化语句 。
7. 在Join表的时候 , 被用来Join的字段 , 应该是相同的类型的 , 且字段应该是被建过索引的 。
这样 , MySQL内部会启动为你优化Join的SQL语句的机制 。
8. 如果你有一个字段 , 比如“性别” , “国家” , “民族” “省份” , “状态”或“部门” , 这些字段的取值是有限而且固定的 , 那么 , 应该使用 ENUM 而不是 VARCHAR 。
因为在MySQL中 , ENUM类型被当作数值型数据来处理 , 而数值型数据被处理起来的速度要比文本类型快得多 。 这样 , 我们又可以提高数据库的性能 。
9. 垂直分割
将常用和有关系的字段放在相同的表中 , 把一张表的数据分成几张表 , 这样可以降低表的复杂度和字段的数目 , 从而达到优化的目的
10. 优化where查询
①避免在where子句中对字段进行表达式操作
比如:select 列 from 表 where age*2=36; 建议改成 select 列 from 表 where age=36/2;
②应尽量避免在 where 子句中使用 !=或<> 操作符 , 否则将引擎放弃使用索引而进行全表扫描
③应尽量避免在 where 子句中对字段进行 null 值 判断
④应尽量避免在 where 子句中使用 or 来连接条件
11. 不建议使用%前缀模糊查询这种查询会导致索引失效而进行全表扫描
例如LIKE “%name”或者LIKE “%name%这两种都是不建议的 。 但是可以使用LIKE “name%” 。