mysql注意事项

注意事项:
1.查询条件内需要使用时间的,不要使用数据库函数now(),都使用应用服务器传入;
2.所有id为mysql自增的,需要使用创建时间排序,都使用order by id desc;或者根据查询条件,将createTime设为联合索引右条件;
3.数字类型字段,应NOT NULL 并设置默认值,默认值不为0,int long默认为0,容易混淆;
4.order by条件在合理情况下应该为联合索引右列;
5.所有count语句去除order by;
6.表中状态字段不用建立索引,对查询没有实质性优化;
具体表索引优化:
1.cm_ext索引不合理表内索引 business_type,business_id联合索引,具体业务查询必要条件为business_id;
索引优化方案:联合索引以最左原则,business_id,business_type建立联合索引,或business_id与business_type为二个单独索引;
2.cm_shop中字段protocol_id没有索引,表内id为自增主键,排序可使用id,或者建立protocol_id,createTime联合索引;
3.cm_access中缺少索引,shop_id建立索引;
4.an_nouncement表需要整理查询,start_time和end_time应建立索引,type,business_id联合索引应该换位;
5.cm_main count(?)是否可以改为count(*),count(?)会排除count字段为NULL数据;
6.as_requirement表user_created有索引,在查指定用户数据时,不应用user_create in (?),in语句无法使用索引;

原文地址:https://www.cnblogs.com/wangzepu/p/9790583.html