-1

将工作负载垂直分布在多行上会比将工作负载水平分布在多个表中提高性能吗???


  • 所以 1 个表有 150,000,000,000 行和 6 列

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

标准方式。

VS

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

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)

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

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

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

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

1 回答 1

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 结帐此链接

于 2013-11-02T03:16:33.200 回答