很久以前,当我还年轻的时候,我曾经做过很多汇编和优化编程.今天我主要发现自己正在构建网络应用程序(它也没关系......).但是,每当我为数据库表创建字段时,我发现自己使用16,32和128等值作为文本字段,并尝试将布尔值组合到SET数据字段中.
给长度为9的文本字段会使我的数据库从长远来看变慢,我是否真的通过指定更容易内存对齐的字段长度来帮助它?
数据库优化与机器代码优化完全不同.对于数据库,大多数情况下,您希望减少磁盘I/O,并且浪费地尝试对齐字段,只会减少磁盘块/页面中的记录.此外,如果任何对齐是有益的,数据库引擎将自动为您执行此操作.
最重要的是索引以及您如何使用它们.尝试在更少的空间中打包更多信息的技巧很容易导致获得良好的索引变得更加困难.(不要过度使用它;不仅索引会降低INSERT和UPDATE到索引列的速度,它们还意味着规划人员需要做更多工作,而这需要考虑所有可能性.)
大多数数据库都有一个EXPLAIN命令; 尝试在您的选择(特别是具有多个表的选择)上使用它来了解数据库引擎将如何工作.