mysql空列

标签 mysql

我目前正在进行优化。

我倾向于使用多个表,所以我没有空列。

我的问题是,空列有什么大不了的吗?我不是在谈论空间。我指的是索引速度、数据检索等...

我打赌的例子是当我有一个简单的客户表时,有些列并不总是被填充。像电子邮件、dob、ssn 或 pic。我会说大多数时候他们都没有填写。

这让我创建了一个新表来存放辅助数据。 但是,如果我将这些列与其余客户信息放在同一个表中,真的会有所不同吗?

如果我这样做,那么会有很多记录的空列。这让我想知道当记录数很大时这对性能的影响有多大。

最佳答案

如果您正在进行优化,我的建议是放弃它 :-)

优化是应对性能问题应该做的事情,而不是心血来潮。如果没有性能问题,所有的优化都是白费力气。

在设计得当的模式中,空字段很少会对数据检索产生很大影响,因为大多数查询应该尽可能仅使用索引来决定要获取哪些行。发现行后,您就可以转到表中获取实际数据。

并且索引速度不会因为该列存储在另一个表中而改变。如果它需要被索引,那么它就需要被索引。

我希望我的模式尽可能简单(同时仍然主要遵循 3NF)以避免不必要的连接。

关于mysql空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3613452/

相关文章:

php - MYSQL 数据库返回错误计数

mysql - 为具有多个连接的查询编写计数查询

mysql条件求和

php - 如何使用 Doctrine 更改 mysql 表的 auto_increment

c# - Mysql 更新查询未运行 ASP.NET

mysql - 带条件连接表

c# - 通过引用另一个表从一个表获取值

php - Wordpress DB 字符集从 utf8mb4 更改为 utf8 导致错误

mysql - 在 MySQL (InnoDB) 中锁定多行

mysql - 使用子查询显示具有相同值的多个答案