MySQL 单表为何别超 2000 万行?揭秘 B + 树与 16KB 页的生死博弈
一、前 言 本文核心介绍,为何业界会有这样的说法?—— “MySQL单表存储数据量最好别超过千万级别” 当然这里是有前提条件的,也是我们最常使用到的: InnoDB存储引擎; 使用的是默认索引数据结构——B+树; 正常普通表数据(列数量控制在几个到一二十个,普通字段类型及长度)。 接下来咱们就探究一下原因,逐步揭开答案。 二、MySQL是如何存储数据的? 核心结构:B+树 + 16KB数据页 这里如下,建一张普通表user: CREATETABLE`user` ( `id`int(10) unsignedNOTNULLAUTO_INCREMENT COMMENT'主键', `name`varchar(100)NOTNULLDEFAULT''COMMENT'名字', `age`int(11)NOTNULLDEFAULT'0'COMMENT'年龄', PRIMARYKEY (`id`), KEY `idx_age` (`age`) ) ENGINE=InnoDB AUTO_INCREMENT=1DEFAULTCHARSET=utf8; 数据页(Page) 介绍 In...
