【发布时间】:2012-09-03 10:29:07
【问题描述】:
我正在使用一个包含超过 2000 万条记录的表,并且运行查询需要大量时间。我可以有一个定义或声明,说如果序列号达到一百万,请使用名称预定义的命名语法(如 table_name_i)进行分区,其中我不断增加。
表定义如下:
Table name - CHIP_DETAILS
Columns -
SEQ_NO - INT(10) - Auto Increment
CHIP_ID - Varchar(16)
TOKEN - VARCHAR(16)
CHIP_BLOB (TINY BLOB)
TOKEN BLOB (TINY BLOB)
GENERATED_TIMESTAMP - TIMESTAMP
USER_ID - INT(10)
MYSQL version - MySQL server 5.5.23
OS - Windows 7 Home Premium - 64 Bit
RAM - 8 Gigs
Processor - Intel i5 2.53
非常感谢任何帮助。
【问题讨论】:
-
我看不出将表分区为多个表会如何提高性能,除非您可以将这些表分布在不同的硬件上,例如不同的服务器或至少不同的硬盘。至少如果您的查询需要对整个表进行操作。如果对于大多数查询而言,表中只有一小部分就足够了,那么确定描述该部分的标准可能比简单地在任意点拆分要好。
-
@MvG - 我将有需要访问整个表的查询,并且拆分数据会使获取速度比查看数百万条记录要快得多,这就是我的想法。可能是我被分区这个词误导了,但我很想听听任何可以帮助我更快地执行查询的技术或技巧。
标签: mysql performance database-design database-performance