【发布时间】:2011-06-02 02:39:17
【问题描述】:
所以我有一个基本上像 NoSQL 设置一样使用的表。结构是:
id bigint 主键 数据介质块 修改时间戳
它有大约 350k 行。在其上运行的查询的结构如下:
从id=XXX的表中选择数据;
表引擎是 InnoDB。我注意到有时针对此表运行的查询相当慢。有时它们需要 3 秒才能运行。该表在磁盘上是 3 GB,我给了 innodb_buffer_pool_size 4G。
这里有什么我遗漏的吗?我可以调整任何设置来提高性能吗?
编辑:按要求解释输出:
+----+-------------+----------+-------+---------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+-------+---------------+---------+---------+-------+------+-------+
| 1 | SIMPLE | cache | const | PRIMARY | PRIMARY | 8 | const | 1 | |
+----+-------------+----------+-------+---------------+---------+---------+-------+------+-------+
创建表:
CREATE TABLE `cache` (
`id` bigint(20) unsigned NOT NULL DEFAULT '0',
`data` mediumblob,
`modified` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
【问题讨论】: