mysql优化建议

作者: 菜鸟栖飞 | 来源:发表于2018-03-03 22:32 被阅读0次
1. 创建
  • 每张表上的索引不应多于6个,索引越多在插入删除时越慢,而且索引会占用很大的磁盘空间。
  • 尽量避免使用text, blog, clob大对象大文本的数据类型,空间占取大,而且索引失效。
  • 考虑在经常做为where及order by列上加索引。
  • 不要在列值可能为null上列上建索引。
  • 索引字段的空间占取要尽可能的小。
  • 若只含数值信息的字段尽量不要设计为字符型,尽量使用数字型字段
2. SQL编写
  • 使用explain查询执行计划看应该用到的索引有没有用到,如果在查询列上加了索引但是在执行计划中看到该索引没有用到那么再根据以下建议调整SQL确保能用到萦引。
  • select语句中尽量减少使用select *;多表连接情况下,请给表取别名,并在查询的字段中明确表名。
  • 使用子查询嵌套不要超过3层。
  • 尽量不要使用子查询作为连接的表使用。
  • 在查询集合较大的情况下如果进行集合查询使用[not] exists 关键字,在查询钱要尝试 [not] in 和 [not] exists 的效率。
  • 避免在where子句中使用null判断、<>和!= 操作符会导致索引失效,并且会进行全表扫描。
  • 避免在where子句中使用函数和表达式,会导致索引失效,函数和表达式可以放在=号的右边进行处理。
  • 当只要一行数据时加Limit 1,这样MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。
  • 应该尽量避免在where子句中用前置模糊查询(select id from t where name like '%李'), 这样即便name列有索引也会失效,进行全表扫描。
  • 在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
  • 在多表联合场景中,尽量使用inner join,避免使用Left join 和 right join,在on子句中可能多的添加连接条件。
  • <font color="red">尽量使用连接来代替子查询 ???</font>

附表

mysql字段类型

  • 日期和时间数据类型
数据类型 含义
date 3字节,日期,格式:2014-09-18
time 3字节,时间,格式:08:42:30
datetime 8字节,日期时间,格式:2014-09-18 08:42:30
timestamp 4字节,自动存储记录修改的时间
year 1字节,年份
  • 数字类型
数据类型 含义
tinyint 1字节,范围(-128~127)
smallint 2字节,范围(-32768~32767)
mediumint 3字节,范围(-8388608~8388607)
int 4字节,范围(-2147483648~2147483647)
bigint 8字节,范围(+-9.22*10的18次方)
数据类型 含义
float(m, d) 4字节,单精度浮点型,m总个数,d小数位
double(m, d) 8字节,双精度浮点型,m总个数,d小数位
decimal(m, d) decimal是存储为字符串的浮点数
  • 字符串类型
数据类型 含义
char(n) 固定长度,最多255个字符
varchar(n) 可变长度,最多65535个字符
tinytext 可变长度,最多255个字符
text 可变长度,最多65535个字符
mediumtext 可变长度,最多2的24次方-1个字符
longtext 可变长度,最多2的32次方-1个字符

相关文章

  • SQL审核优化建议

    SQL审核优化建议 数据库类型 MySQL:RDS MySQL、PolarDB MySQL、MariaDB、Pol...

  • MySQL大数据量查询方法及优化

    看了一些关于MySQL查询的优化方法,发现MySQL的优化最离不开的就是索引,还有其他优化的小建议。 查询方法: ...

  • mysql优化建议

    1. 创建 每张表上的索引不应多于6个,索引越多在插入删除时越慢,而且索引会占用很大的磁盘空间。 尽量避免使用te...

  • mysql优化建议

    文章引自:https://www.douban.com/note/345871485/ 第一方面:30种mysql...

  • mysql优化建议

    1. 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MyS...

  • mysql优化建议

    1sql中出现了过多的or时,建议是多个查询sql,用union all将结果集连接起来 2查询是否存在selec...

  • MySQL优化建议

    对于数据分析而言,可能需要经常从数据库中查询数据,那么怎样才能更优地获取数据库中的数据呢,这里简单介绍了几种MyS...

  • Mysql优化建议-网上资料

    背景 最近学习Mysql优化相关知识,弄到了一份文档,上面有相关的21条建议。 链接 Mysql优化英文文档 最后...

  • 程序员收藏必看系列:深度解析MySQL优化(二)

    程序员收藏必看系列:深度解析MySQL优化(一) 性能优化建议 下面会从3个不同方面给出一些优化建议。但请等等,还...

  • 后端开发需要了解的mysql优化方向

    优化思维导图 参数优化注意事项 参数优化分为 动态参数配置 和 配置文件的配置,建议在启动mysql之前配置好优化...

网友评论

    本文标题:mysql优化建议

    本文链接:https://www.haomeiwen.com/subject/gkbxfftx.html