总结
良好的schema 设计原则是普遍适用的但MySQL 有它自己的实现细节要注意概括来说尽可能保持任何东西小而简单总是好的MySQL 喜欢简单需要使用数据库的人应该也同样会喜欢简单的原则
尽量避免过度设计例如会导致极其复杂查y 询的schema 设计或者有很多列的表设计(很多的意思是介于有点多和非常多之间)
使用小而简单的合适数据类型除非真实数据模型中有确切的需要否则应该尽可能地避免使用NULL 值
尽量使用相同的数据类型存储相似或相关的值尤其是要在关联条件中使用的列
注意可变长字符串其在临时表和排序时可能导致悲观的按最大长度分配内存
尽量使用整型定义标识列
避免使用MySQL 已经遗弃的特性例如指定浮点数的精度或者整数的显示宽度
小心使用ENUM和SET虽然它们用起来很方便但是不要滥用否则有时候会变成陷阱最好避免使用BIT
范式是好的但是反范式(大多数情况下意味着重复数据)有时也是必需的并且能带来好处第 章我们将看到更多的例子预先计算缓存或生成汇总表也可能获得很大的好处Justin Swanhart 的Flexviews 工具可以帮助维护汇总表
最后ALTER TABLE 是让人痛苦的操作因为在大部分情况下它都会锁表并且重建整张表我们展示了一些特殊的场景可以使用骇客方法但是对大部分场景必须使用其他更常规的方法例如在备机执行ALTER 并在完成后把它切换为主库本书后续章节会有更多关于这方面的内容
返回目录高性能MySQL
编辑推荐
ASPNET MVC 框架揭秘
Oracle索引技术
ASP NET开发培训视频教程
数据仓库与数据挖掘培训视频教程