---恢复内容开始---
设计表的时候
1. 不同的表涉及同一个公共意义字段不要使用不同的数据类型(可能导致索引不可用,查询结果有偏差)
3. 最好不要有为Null的列,原因:https://mp.weixin.qq.com/s/U4RRNVj5BKwkQ-CWmPd9Fg
查询表的时候
1. 最好不要使用联表查询(风险不可控)【理论上禁止】
2. 不要在字段当中进行函数运算【禁止】
3. 尽量不要使用now()函数进行查询【禁止】
5. 删除全表数据的时候用truncate而不是delete
6. 尽量不要使用模糊匹配 '%abc%'【理论上禁止】
7. sql语句不要写的过于复杂,逻辑判断尽量在内存中完成
8. 不要加入触发器
9. 使用explain查看执行计划
加索引的时候
1. 添加索引的字段一定要有很好的区分度【cardinality】
2. 更新数据的时候最好使用主键作为更新条件
3. 加入联合索引要把区分度高的字段放在前面
4. 不常访问的列不要加索引
5. 长字符串不要加索引,如果一定要加,选取字符串的前n位加上。(n根据实际情况设定,经验值不会超过20)
---恢复内容结束---
设计表的时候
1. 不同的表涉及同一个公共意义字段不要使用不同的数据类型(可能导致索引不可用,查询结果有偏差)
3. 最好不要有为Null的列,原因:https://mp.weixin.qq.com/s/U4RRNVj5BKwkQ-CWmPd9Fg
查询表的时候
1. 最好不要使用联表查询(风险不可控)【理论上禁止】
2. 不要在字段当中进行函数运算【禁止】
3. 尽量不要使用now()函数进行查询【禁止】
5. 删除全表数据的时候用truncate而不是delete
6. 尽量不要使用模糊匹配 '%abc%'【理论上禁止】
7. sql语句不要写的过于复杂,逻辑判断尽量在内存中完成
8. 不要加入触发器
9. 使用explain查看执行计划
加索引的时候
1. 添加索引的字段一定要有很好的区分度【cardinality】
2. 更新数据的时候最好使用主键作为更新条件
3. 加入联合索引要把区分度高的字段放在前面
4. 不常访问的列不要加索引
5. 长字符串不要加索引,如果一定要加,选取字符串的前n位加上。(n根据实际情况设定,经验值不会超过20)
7.少用数据库函数,比如sysdate(),可以改为传入一个当前时间
8.根据具体业务,创建联合索引
9.索引庞大会导致索引文件太大,可以加一张中间表来解决
10.xml文件里面没有添加jdbc-type,传入map类型,字段类型不符合的话,mysql会强制类型转换,但不会走索引