spring mvc 小记(六):关于MySql优化
2016-10-08 21:01
302 查看
使用spring mvc已有2年之久,却还是停留在使用阶段,感觉这么下去不是办法,所以还是想往深处一探究竟。
MySql优化初试
数据库优化,这个概念如此的高大上,感觉不进大公司,不做超大的项目,是接触不到这东西了。晕,出去面试,差不多都会问“有木有数据库优化的经验呐”,我就纳闷了,这些个小项目,用得着优化吗,还不是想建表就建表,想加字段就加字段?
笑cry了,也许我把这个东西想的太神了,其实在开发中,一些小的举动也是可以称为“数据库优化的”,最简单的——索引,也许还是没用过,但是这个一定用过——主键,数据库会自动给主键加上索引。那么就记录一下开发过程中那些经意或不经意的优化。
我们在建表的时候,其实也不是那么随意建的,至少会考虑各表之间的基本关系,可能会用到:
1、将字段很多的表分解成多个表(分表):一个表的字段多到受不了的时候,就把它“切”了吧
2、增加中间表:将在同一个操作里使用频率很高的一些字段合成一张表,下次查询可以直接查询该表,不过得注意数据同步
3、增加冗余字段:这个应该经常用吧,当某个字段老是得去其他表查找时,不如直接把这个字段搬过来,同样得注意数据的同步
最常用的查询优化——加索引:
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据,但是索引并不是越多越好,一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动),合理使用索引,能使查询加速不少。
1>在使用LIKE关键字进行查询的查询语句中,如果匹配字符串的第一个字符为“%”,索引不起作用。只有“%”不在第一个位置,索引才会生效;2>MySQL可以为多个字段创建索引,一个索引可以包括16个字段。对于联合索引,只有查询条件中使用了这些字段中第一个字段时,索引才会生效;3>查询语句的查询条件中只有OR关键字,且OR前后的两个条件中的列都是索引时,索引才会生效,否则,索引不生效。
接触到一个词——慢查询:
记录比较耗时的sql语句。(在Druid中有这种统计功能,不知道是不是同一个概念)
以上这些其实都可以概括为数据库优化,所以下次别人问起时,这些回答也是可以的。
MySql优化初试
数据库优化,这个概念如此的高大上,感觉不进大公司,不做超大的项目,是接触不到这东西了。晕,出去面试,差不多都会问“有木有数据库优化的经验呐”,我就纳闷了,这些个小项目,用得着优化吗,还不是想建表就建表,想加字段就加字段?
笑cry了,也许我把这个东西想的太神了,其实在开发中,一些小的举动也是可以称为“数据库优化的”,最简单的——索引,也许还是没用过,但是这个一定用过——主键,数据库会自动给主键加上索引。那么就记录一下开发过程中那些经意或不经意的优化。
我们在建表的时候,其实也不是那么随意建的,至少会考虑各表之间的基本关系,可能会用到:
1、将字段很多的表分解成多个表(分表):一个表的字段多到受不了的时候,就把它“切”了吧
2、增加中间表:将在同一个操作里使用频率很高的一些字段合成一张表,下次查询可以直接查询该表,不过得注意数据同步
3、增加冗余字段:这个应该经常用吧,当某个字段老是得去其他表查找时,不如直接把这个字段搬过来,同样得注意数据的同步
最常用的查询优化——加索引:
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据,但是索引并不是越多越好,一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动),合理使用索引,能使查询加速不少。
1>在使用LIKE关键字进行查询的查询语句中,如果匹配字符串的第一个字符为“%”,索引不起作用。只有“%”不在第一个位置,索引才会生效;2>MySQL可以为多个字段创建索引,一个索引可以包括16个字段。对于联合索引,只有查询条件中使用了这些字段中第一个字段时,索引才会生效;3>查询语句的查询条件中只有OR关键字,且OR前后的两个条件中的列都是索引时,索引才会生效,否则,索引不生效。
接触到一个词——慢查询:
记录比较耗时的sql语句。(在Druid中有这种统计功能,不知道是不是同一个概念)
以上这些其实都可以概括为数据库优化,所以下次别人问起时,这些回答也是可以的。
相关文章推荐
- spring mvc 小记(七):关于spring事务管理
- spring mvc 小记(二):关于log4j的配置
- spring mvc 小记(三):关于AOP
- 小记 之 关于Viemu配置文件
- 转:关于我使用spring mvc框架做文件上传时遇到的问题
- C#学习小记7一个多载,及我想实验关于抽象类能否直接编译运行
- C#学习小记5 一个有趣的程序关于复载property
- 关于const和static的一点小记
- 日常小记--关于系统演示
- 关于创建用户的小记
- 关于交通堵塞的讨论小记
- 关于Linux的学习小记
- 关于运算符小记
- 关于Spring MVC注解 @Transactional 事务标签 @InitBinder 标签
- 关于sqlserver2008 bcp根据数据表导出xml格式文件的小记
- 关于C++多继承问题小记
- 关于Spring MVC对非String类型进行校验时的出错处理
- 关于ajax的debug小记一则--小问题往往容易被忽略
- 关于编译器的内存分配有感小记
- 关于ASP.NET MVC的Filter小记