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

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

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

字段优化:

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

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

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

④  尽量使用TIMESTAMP而非DATETIME;

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

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

⑦  用整型来存IP;

索引优化:

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

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

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

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

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

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

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

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

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

最新文章

  1. SPSS数据分析—多分类Logistic回归模型
  2. AJAX案例四:省市联动
  3. map的应用
  4. No.014 Longest Common Prefix
  5. Java IO(四)
  6. Multimedia&Network
  7. demo_08webStroage案例
  8. IO库 8.5
  9. Apache服务器学习笔记
  10. C语言生成2000w行数据
  11. SpringBoot技术栈搭建个人博客【前台开发/项目总结】
  12. Cookie Manager
  13. photo型的object转byte[]
  14. Hadoop 和 MPP 的比较
  15. 蒟阵P3390 【模板】矩阵快速幂
  16. python初级实战-----关于邮件发送问题
  17. [转]MyBatis中resultType与resultMap区别
  18. JAVA面试精选【Java web部分一】
  19. VS“当前上下文中不存在名称“ViewBag”,当前上下文不存在名称“model””-已解决
  20. fread

热门文章

  1. 【UER #8】雪灾与外卖
  2. 使用With递归查询 树
  3. Snagit for mac(截图软件)中文版,截个图就是这么容易!
  4. python3.X中try/except
  5. 基于Cmake+QT+VS的C++项目构建开发编译简明教程
  6. VUE2+elementUI前端实现 三级省市联动select
  7. webpack 4+ vue-loader 配置 (完善中...)
  8. Python3系列__01Python安装
  9. JavaScript(九)
  10. Git SSL公钥密钥生成