2011-11-10 46 views
3
  • 数据库中的所有表有一个时间戳列[float] 接着参数列[integer] (通常小于5,但超过1)的任意的量,和一个值列 [float
  • 所有查询都没有任何连接,它们基于给数据库一组参数,并返回时间戳和值列。
  • 行数以低10几百万计。
  • 用户数量少于10个。
  • 读取次数多于写入次数,但两者都可以同时使用。
  • 应符合ACID属性。

回到当天所有的MySQL被选中,但这是一个有争议的问题。 SQLite在本地计算机上是快速和轻松的,但在这个例子中,它需要是一个合适的服务器/客户端数据库。直到这一点,没有发生优化,除了索引。如何为没有连接的查询优化MySQL服务器?

编辑:

我没有提到它正常,但交通不是问题。也就是说,它不是真正符合某些音量标准的优化,而是纯速度的优化。

+1

你的问题是什么?标题是“我可以为没有联接的查询优化MySQL服务器吗?”你说“所有查询都没有任何连接”......所以......有点困惑。 –

+0

我对优化查询不感兴趣。我有兴趣优化数据库本身。也就是说,存储引擎,缓冲区大小等。我只是想我会指定查询的性质,以便更容易理解数据库的使用方式。 – c00kiemonster

+0

读取和写入的卷(每秒事务)是多少? – Ian

回答

1
  • 使用InnoDB进行ACID支持。

  • 内存,内存,内存。您可以为读操作进行的最佳MySQL调优优化是增加innodb_buffer_pool_size。但是当然不会太高,以至于它会比物理内存更大,因为这会导致mysqld进入交换。

  • 将您的表的主键沿着您最常搜索的列结构化。也就是说,利用主键上的InnoDB聚簇索引。

+0

使用InnoDB时,复合(多列)主键会影响性能吗? – c00kiemonster

+0

确保组合主键中最左边的列是您查询的列。 –