一.表设计过程中应该注意的数据类型

  • 1)更小的通常更好 控制字节长度
  • 2)使用合适的数据类型: 如tinyint只占8个位,char(1024)与varchar(1024)的对比,char用于类似定长数据存储比varchar节省空间,如:uuid(32),可以用char(32).
  • 3)尽量避免NULL建议使用NOT NULL DEFAULT ''
  • 4)NULL的列会让索引统计和值比较都更复杂。可为NULL的列会占据更多的磁盘空间,在Mysql中也需要更多复杂的处理程

二.索引设计过程中应该注意的点:

  • 1)选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录,保证物理上面唯一
  • 2)为经常需要排序、分组和联合操作的字段建立索引 ,经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间
  • 3)常作为查询条件的字段建立索引 如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速
  • 4)数据少的地方不必建立索引:例如gender性别字段,仅有男女2中数据, 如果在这个字段建立索引,缺点:1.索引占用内存,2.索引性能差

三.关于SQL的执行计划

  使用explain关键字可以分析SQL的执行计划

  下面是对比图:

数据少的字段建立索引

  建立索引前

  建议索引后(性能提升较少)

数据多的字段建立索引

  建立索引前

  建立索引后

  

最新文章

  1. Android ORM -- Litepal(2)
  2. (UWP开发)基于Windows10 Anniversary SDK创造出位于可视化层的DropShadow
  3. 上传到github!
  4. Python 培训之MySql
  5. empty()和isset()的区别
  6. Caused by: java.lang.OutOfMemoryError: PermGen space.
  7. 前端不为人知的一面–前端冷知识集锦 原文地址(http://web.jobbole.com/83473/);
  8. Hibernate 查询语句
  9. inline-block总结
  10. jqm的多列布局demo,html5的多列布局demo,多列布局的具体解说,html5开发实例具体解释
  11. bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
  12. JavaScript面向对象轻松入门之多态(demo by ES5、ES6、TypeScript)
  13. CentOS ifconfig无IP地址解决办法
  14. Tensorflow 基于分层注意网络的文件分类器
  15. java-同一用户顶替操作(session过期或无效)
  16. HTML5+CSS3(3)
  17. net core中动态给log4net添加日志类型
  18. Java面向对象 第3节 类的封装和继承
  19. 【Eclipse】Eclipse中打开cmd窗口和terminal窗口
  20. Linux命令中:rsync和cp之间的区别

热门文章

  1. Codeforces Round #393 (Div. 2) - A
  2. mongdb 简介以及安装
  3. 【串线篇】Mybatis之缓存原理
  4. hadoop中mapreduce的mapper抽象类和reduce抽象类
  5. Maven 错误: Unknown lifecycle phase ".sourceforge.javacsv". You must specify a valid lifecycle phase or a goal
  6. nyoj 600:花儿朵朵(树状数组+坐标离散化)
  7. phpLite 压缩包 百度云网盘资源
  8. python不能运行
  9. POJ 3348 Cows (凸包模板+凸包面积)
  10. paper 167:GPU的使用Theano之tutorial