2011-10-20 37 views
0

由于我还处于我的网站设计的开始阶段,我想现在是问这个问题的好时机。MySQL的性能:许多行和列(MyISAM)

我知道优化MySQL查询的方法之一是将行分割为单独的表,但是,这确实有一些舒适性问题。

我正在考虑是这样的:将查询由使用出色的设计指标,只得到从每个查询结果需要的列周围1'000'000行和150列的表在更高的服务器负载比splittiing表成多个,导致更少的collumns?

回答

2

大blob表是反模式,从来没有使用它们。

标准化表将运行得比单个blob快得多。
InnoDB针对许多需要连接的小表进行了优化。

使用标准化的表会为你节省很多头痛的问题,除了:

  1. 您的数据会更小,所以更多的它适合在内存中。
  2. 您只将数据存储在一个地方,所以它不能以不一致的数据结束。
  3. MySQL只允许您为每个表选择一个索引,多个表意味着您可以使用更多索引并获得更多速度。
  4. 表上的触发器执行得更快。
  5. 标准化表格更容易维护。
  6. 您每个表的索引较少,因此插入速度更快。
  7. 索引较小(较少的行)和缩小(较少的列),因此运行速度会更快。
+0

我没有真正想到这些观点。谢谢,我一定会考虑它。 –

0

如果数据是静态的,您可以打包表以提高效率。这里是page in the reference manual

+0

不幸的是,大概有90-95%的数据是动态的。 –