相关疑难解决方法(0)

MySQL中的NULL(性能和存储)

在MySQL中,null的性能和存储(空间)究竟是什么?

例如:

TINYINT:1字节TINYINT w/NULL 1字节+以某种方式存储NULL?

mysql sql null

69
推荐指数
3
解决办法
3万
查看次数

何时在MySQL表中使用NULL

我很欣赏数据库表中NULL值的语义含义,不同于false和空字符串''.但是,当字段可以为空时,我经常阅读有关性能问题的内容,并建议在NULL实际上在语义上正确的情况下使用空字符串.

什么情况适合使用可空字段和NULL值?有什么权衡取舍?简单地避免完全使用NULL并简单地使用空字符串,false或0表示缺少值是明智的吗?

UPDATE

好的 - 我理解'和NULL之间的语义差异以及NULL是适当的字段值的(性能不可知)情况.但是,让我扩展一下暗示的性能问题.这是来自Schwartz,Zeitsev等人的优秀"高性能MySQL" http://www.borders.co.uk/book/high-performance-mysql-optimization-backups-replication-and-more/857673/:

MySQL更难以优化引用可空库存的查询,因为它们使索引,索引统计和值比较更加复杂.可空列使用更多存储空间,并且需要在MySQL内部进行特殊处理.当索引可空列时,每个条目需要一个额外的字节,甚至可以在MyISAM中将固定大小的inded(例如单个整数列上的索引)转换为可变大小的列.

更多信息: Google图书预览

这很可能是明确的答案 - 我只是在寻找前线的第二意见和经验.

mysql null

48
推荐指数
4
解决办法
3万
查看次数

标签 统计

mysql ×2

null ×2

sql ×1