小编Aev*_*eus的帖子

MySQL 如何管理其与索引相关的内存?

首先,我问这个的原因是因为我觉得我有一个数据库 - 根据我自己的估计 - 应该用大量 I/O 杀死磁盘,因为索引不适合内存,但在实际上它仍然表现良好。

让我们从相关表开始:

CREATE TABLE `search` (
  `a` bigint(20) unsigned NOT NULL,
  `b` int(10) unsigned NOT NULL,
  `c` int(10) unsigned DEFAULT NULL,
  `d` int(10) unsigned DEFAULT NULL,
  `e` varchar(255) DEFAULT NULL,
  `f` varchar(255) DEFAULT NULL,
  `g` varchar(255) DEFAULT NULL,
  `h` varchar(255) DEFAULT NULL,
  `i` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

a列是一个 8 字节的数字,其中编码了时间戳(以秒为单位)。该表有一个PARTITION BY RANGE (a), 将表分成每月分区。这是因为我们只在数据库中保留了 24 个月,其余的都被清除了。

该表每月增长约 2 亿行;整个表包含大约 50 亿行。

它运行的服务器有大约 360GB 的内存,其中 300GB 是为 MySQL …

mysql memory database-internals percona mysql-5.6

5
推荐指数
1
解决办法
3171
查看次数

标签 统计

database-internals ×1

memory ×1

mysql ×1

mysql-5.6 ×1

percona ×1