MySQL:什么更快?获得许多行,每行包含少量数据,或者每行中包含更多数据的行数更少?

时间:2018-02-07 18:44:45

标签: php mysql

我正在开发一个PHP应用程序。我将此应用程序的所有设置存储在MySQL表中。每个页面加载时都会调用此表的每一行。

我想知道这是否是最有效的方法。或者最好将这些行中的数据合并为一行/列,而不是包含所有选项的JSON?

示例 - 当前:

setting_1 | data1
setting_2 | data2
setting_3 | data3

示例 - 新方法:

settings | { "1" : "data1", "2" : "data2", "3" : "data3" }

谢谢!

2 个答案:

答案 0 :(得分:1)

读取一组行与包含等效数据的一行之间的差异是微不足道的。它的字节数几乎相同。

如果您担心获取设置的性能,请不要在每次加载页面时从数据库中读取它们。请从内存中的缓存中读取它们。

大多数注重性能的Web应用程序使用Redis或Memcached实例来补充其数据库。

答案 1 :(得分:0)

最有可能使用单个语句获取所有数据的速度更快,因为连接处理,编组,协议处理等的开销超过了其他所有内容。如果您要传输千兆字节的数据,这个故事可能会改变,但这对于配置文件来说并不常见。