查询
1,默认不区分大小写
select * from t_cert where cert_num='20110219811107282x';
会查询出"20110219811107282x”,“20110219811107282x”
2,InnoDB不支持count()函数,select count(id)的时候,拿中间表存总数。(杜绝使用select count(*))
3,存在更新不存在插入,replace into存在替换(删除旧记录),insert into on duplicate key update存在更新(小心:当2者更新的时候都会auto_increment+1,千万别用在主键和其他关联的情况,还有就是性能)
4,大家都用select * ,查询可能走缓存,但是有更新就失效,select id,name节约内存,但命中几率更小
索引:
1,使用前缀索引,节约空间,但是order by排序时,会失效
建表:
1,性别用gender,sex是性;还有"登录"别用"登陆"
2,能用not null就用:null需要额外的空间和特殊处理,SQL简单省去not null的判断(当is_del列有值null、0、1时,查找没有删除的记录时select * from t_user where is_del!=1只会查找到0的记录)
3,整型要比字符型占用空间少,并且整型占用空间的大小只取决于类型,与宽度设置int(11)无关