备注、描述、评论之类的可以设置为null,其它做好不要使用null。
不要以为null不需要空间,比如:char(100)型,在字段建立时,控件就固定了,不管是否插入值(null也包含在内)。都是占用100个字符的空间的。如果是varchar这样的变长字段,null不占用空间。
可以在null上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
(3)in 和 not in 也要慎用,否则会导致全表扫描,如:
很多时候,用exists代替in是个好的选择:
(4)尽量使用数字类型字段,若只含数值信息的字段,尽量不要设计为字符型,这样会降低查询和连接的性能,并会增加存储开销,这是因为引擎在处理查询和连接时,会逐个比较字符串中每一个字符。而对于数字型而言,只需要对比一次就可以了。
(5)尽量使用表变量来代替临时表,如果表变量包含大量数据,请注意索引使用非常有限(只有主键索引)。
(6)不要以为使用mysql的一些连接查询操作对查询有多么大的改善,其核心时索引。