建表时列的选择
数据类型
尽量使用定长的数据,可以使查询速度变快
因为使用定长的数据可以更方便的在磁盘上找到相关的数据
数据类型优先级
int>time,date >enum,char>varchar>text,blob
int
全世界通用,没有字符集和校对集的区别
time date
实际int类型,尽量使用time时间戳,可以省去时区方面的麻烦
enum char
enum 枚举类型内部实际int型,enum转char时需要进行串与数据的转发所以较慢
char 定长的字符串,使运算速度更快
避免使用null
null不利于索引,且占用内存更大
数据分离
将常用的数据与不常用的列进行分离
添加一些必要冗余
例如博客系统的数据库设计,可以在用户表加上一列已发表文章数,这样在查询该用户的文章发布数时,可以减少一次数据的级联查询,当前硬件成本较低,不用死扣范式,采用空间换时间可能使用户体验更好