哪个是为了更快地获取结果?

时间:2014-02-09 07:23:58

标签: mysql sql database

哪个目的是为了更快地获取结果?

来自单个表的400个表或400列的

单列数据

4 个答案:

答案 0 :(得分:2)

根据我的知识,从单个表中获取数据会更快。如果从单个表中获取数据,则无需指定任何连接条件。

如果您遇到要从单列获取数据的任何情况,可以使用SQL Server 2012的ColumnStoreIndex功能。

但我不确定mySql中是否提供此类索引。

基本上我在这里发布了MS SQL服务器的概念。我对MySQL没有太多了解。

答案 1 :(得分:0)

我不确定,但我认为单个表中的400列会更快!

原因:

  

指针必须从每个数据块(表)移动并搜索列。这必须为400个表完成。

     

但是单个表中400列的 HIT 级别会高得多。

答案 2 :(得分:0)

我不完全确定“400个表中的单列数据”是什么意思,但这是我的回答:

如果你的意思是“用一列加载400行或用400列加载1行更快”,我会说根据this blogpost中的结果加载后者会更快。 话虽如此, 400行听起来像维护噩梦,我怀疑它值得权衡。也许你可以发布更多细节,我们可以给你更好的答案?

答案 3 :(得分:0)

一个表的400个结果肯定比400个表中的每个表的结果快。考虑需要输入纽约电话簿中的前400个电话号码。因此,您决定从电话簿A中读取第一个号码,从电话簿B中读取第二个号码,......,以及第400个电话簿中的最后一个号码。从第一本电话簿中顺序读取它们会更快(从表格开始就适当地从表格开始)。

这是一个主要的问题,它会回来并咬住许多程序员。它归结为在进入太深之前战略性地组织数据表的结构和布局的重要性。