哪个更好1Table 150,000,000,000行或5000 TABLES 300,000行

时间:2013-10-31 20:57:14

标签: mysql database

  

将工作量垂直分散到多行会增加   超越许多人横向分割工作量的性能   表???


  • 因此1表包含150,000,000,000行和6列

table1(item_id,cat_id,note)
NOTE列将存储一个不断变化的非重复INT。

标准方式。

 VS

  • 包含300,000行和1,000列的5000个表。

table1(id,cat_id,item_1,item_2,item_3,... item_999)table2(table1_id,id,cat_id,item_1000,item_1001,item_1002,... item_1998)
...
table5000(table1_id,ID,CAT_ID,item_499000,item_499001,item_499002,... item_500000)

列本身将定义项目所在的每个类别 Row将定义该类别中的每个项目。

从上面注意:将被放置在相交的单元格中。

哪个更好?为什么?如果可能,链接

  • 搜索多个表而不是一个表时是否存在巨大的性能滞后?

1 个答案:

答案 0 :(得分:1)

Bytes per short string column 8,000

Bytes per GROUP BY, ORDER BY 8,060

Bytes per row 8,060

Columns per index key 16

Columns per foreign key 16

Columns per primary key 16

Columns per nonwide table 1,024

Columns per wide table 30,000

Columns per SELECT statement 4,096

Columns per INSERT statement 4096

Columns per UPDATE statement (Wide Tables) 4096

这是mysql的限制

When you combine varchar, nvarchar, varbinary, sql_variant, or CLR user-defined type columns that exceed 8,060 bytes per row, consider the following:
你正在构建实时应用程序吗? 你真的想过将关系划分为表吗? 你对属性有所了解吗? 您对数据库的想法是错误的

你只需要修改设计 我非常担心你的编码你将如何编码?

按照以下步骤操作

  • 正确满足您的要求
  • 做一些分析
  • 并重新设计您的数据库我认为您将获得良好的输出

我有列的最大行数是100,这远远超出我的观点,因此我将这些列分为17个表

http://www.slideshare.net/ronaldbradford/top-20-design-tips-for-mysql-data-architects-presentation 查看此链接