Mysql优化是一个老生常谈的问题,

优化的方向也优化很多:从架构层;从设计层;从存储层;从SQL语句层;

今天讲解一下从索引和字段:

字段优化:

①  尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED;

②  VARCHAR的长度只分配真正需要的空间;

③  使用枚举或整数代替字符串类型;

④  尽量使用TIMESTAMP而非DATETIME;

⑤  单表不要有太多字段,建议在20以内;

⑥  避免使用NULL字段,很难查询优化且占用额外索引空间;

⑦  用整型来存IP;

索引优化:

①  索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描;

②  应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描;

②  值分布很稀少的字段不适合建索引,例如”性别”这种只有两三个值的字段;

③  字符字段只建前缀索引;

④  字符字段最好不要做主键;

⑤  不用外键,由程序保证约束;

⑥  尽量不用UNIQUE,由程序保证约束;

⑦   使用多列索引时主意顺序和查询条件保持一致,同时删除不必要的单列索引;

后续会更新其余方面针对Mysql优化的建议.有疑问请直接给我留言.

最新文章

  1. jQuery仿阿里云购买选择购买时间长度
  2. Java学习笔记,第三章
  3. WPF入门教程系列五——Window 介绍
  4. android java数组应用与说明
  5. Maven_根据不同个环境打包, 获取不同的配置文件等等
  6. Entity FrameWork 延迟加载本质(二)
  7. .net Int16 、(int Int32)、 Int64 的区别
  8. 分布式MySQL 数据库
  9. 防火墙设置:虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
  10. C/C++学习站点资源
  11. 跟我一起学习VIM - The Life Changing Editor
  12. VC++代码的汇编分析(一)
  13. PHP基础之 file_get_contents() 函数
  14. JDK源码学习--String篇(三) 存储篇
  15. CSS3属性值之box-shadow
  16. [android] android下文件访问的权限
  17. java中级——二叉树比较冒泡和选择排序
  18. Django 知识总结(一)
  19. topcoder srm 415 div1
  20. Linux下的JDK和OpenJDK有什么具体的区别

热门文章

  1. Eureka restTemplate访问超时
  2. ***OneinStack交互安装FAQ和管理服务常用命令
  3. No enclosing instance of type Test is accessible. Must qualify the allocation with an enclosing instance of type Test (e.g. x.new A() where x is an instance of Test).
  4. Ionic2中腾讯Bugly异常捕获以及上报
  5. UOJ#103. 【APIO2014】Palindromes PAM模板题
  6. Android进阶:七、Retrofit2.0原理解析之最简流程【上】
  7. Paxos协议超级详细解释+简单实例
  8. Linux文件名匹配和输出重定向--2019-4-24
  9. 与下位机或设备的通信解析优化的一点功能:T4+动态编译
  10. CentOS7部分调优命令