数据库设计中,需要优先性能、开发并重。
1 使数据尽可能小。占用最小的存储空间,在进行查询的时候,就会占用更少的主存储器,性能就会更高。主要措施:
1.1 尽可能使用较小的整数类型使表更小
比如int 和tinyint的选择。如果是状态标识,不超过256个状态(其实,任何系统都够用了,如果超出了,那就是系统设计有问题了),那就不要用int。int 4byte,mediumint 3 bytes,mallint 2 byte,tinyint 1byte。
1.2 尽可能地使用最有效(最小)的数据类型
这是关于存储引擎的选择。
1.3 如果可能,声明列为NOT NULL
它使任何事情更快而且每列可以节省一位。注意如果在应用程序中确实需要NULL,应该毫无疑问使用它,只是避免 默认地在所有列上有它。这里说下MSSQL、MySQl和Oracle关于not null 和 '' (空字符串)的区别,因为在not null时,程序写入 '' ,数据库表现是不一样的。主要是:MSSQL和MySQL,not null != '',所以,可以插入'';Oracle中,not null == ‘’,所以,不能插入''。