MySQL 多列或单列的数据库设计
MySQL Database design with multiple column or single column
你好只是一个简单的问题
我需要将数据存储到数据库,现在有 2 个选项可以显示
数据:a,b,c,d
1.将a,b,c,d存入1列,需要时只在应用
中查询拆分
2. 存储a,b,c,d到4个不同的列,可以直接从数据库中查询
哪个选项会更好?我担心的是将它分成 4 个不同的列会使表包含很多列,这会降低性能吗?而且我很好奇是否有可能查询速度很快但数据传输到我的应用程序很慢?
MySQL性能是一个复杂的课题。针对您提出的问题:
My concern is split it into 4 different column will make the tables
contain many column, does it slow down the performance?
从性能的角度来看,拥有 4 列、10 列、20 列或 50 列本质上没有什么比这更糟糕的了。
现在,话虽如此,有些事情可能会影响性能,如果您不了解它们,可能会影响性能。例如,如果你 SELECT * FROM {my_table}
而实际上你只需要 SELECT a FROM {my_table}
... 是的,那会影响你的表现(尽管有一些论点支持 SELECT * FROM {my_table}
你的缓存策略)。
同样,您需要考虑 LIMIT 语句。针对您的问题
And also I am curious is it possible the query is fast but the
transfer of data to my application is slow?
当然可以。如果您只需要 50 行,而您的 table 有 50000 行,您将需要在 SQL 语句中添加限制子句,否则您将通过网络发送比您需要的多得多的数据成为。内存比磁盘快,磁盘比网络快。如果您通过线路发送大量不需要的数据,您最好相信这会导致性能问题。但请再次记住,这与您拥有多少列无关。 table 的列数绝对不会影响性能(至少不会影响您正在谈论的规模和您正在考虑的方式)
综上所述,性能是一个复杂的话题。如果你有兴趣,你应该看看它。听起来 a、b、c 和 d 在逻辑上是不同的列,因此您可能应该继续将它们存储在 MySQL 中的不同列中。希望这可以帮助。
你好只是一个简单的问题
我需要将数据存储到数据库,现在有 2 个选项可以显示
数据:a,b,c,d
1.将a,b,c,d存入1列,需要时只在应用
中查询拆分
2. 存储a,b,c,d到4个不同的列,可以直接从数据库中查询
哪个选项会更好?我担心的是将它分成 4 个不同的列会使表包含很多列,这会降低性能吗?而且我很好奇是否有可能查询速度很快但数据传输到我的应用程序很慢?
MySQL性能是一个复杂的课题。针对您提出的问题:
My concern is split it into 4 different column will make the tables contain many column, does it slow down the performance?
从性能的角度来看,拥有 4 列、10 列、20 列或 50 列本质上没有什么比这更糟糕的了。
现在,话虽如此,有些事情可能会影响性能,如果您不了解它们,可能会影响性能。例如,如果你 SELECT * FROM {my_table}
而实际上你只需要 SELECT a FROM {my_table}
... 是的,那会影响你的表现(尽管有一些论点支持 SELECT * FROM {my_table}
你的缓存策略)。
同样,您需要考虑 LIMIT 语句。针对您的问题
And also I am curious is it possible the query is fast but the transfer of data to my application is slow?
当然可以。如果您只需要 50 行,而您的 table 有 50000 行,您将需要在 SQL 语句中添加限制子句,否则您将通过网络发送比您需要的多得多的数据成为。内存比磁盘快,磁盘比网络快。如果您通过线路发送大量不需要的数据,您最好相信这会导致性能问题。但请再次记住,这与您拥有多少列无关。 table 的列数绝对不会影响性能(至少不会影响您正在谈论的规模和您正在考虑的方式)
综上所述,性能是一个复杂的话题。如果你有兴趣,你应该看看它。听起来 a、b、c 和 d 在逻辑上是不同的列,因此您可能应该继续将它们存储在 MySQL 中的不同列中。希望这可以帮助。