This commit is contained in:
by931
2022-09-06 22:30:37 +08:00
parent 66970f3e38
commit 3d6528675a
796 changed files with 3382 additions and 3382 deletions

View File

@@ -246,7 +246,7 @@ SELECT * FROM t;
<p>很多同学会认为,分区表是把一张大表拆分成了多张小表,所以这样 MySQL 数据库的性能会有大幅提升。<strong>这是错误的认识</strong>!如果你寄希望于通过分区表提升性能,那么我不建议你使用分区,因为做不到。</p>
<p><strong>分区表技术不是用于提升 MySQL 数据库的性能,而是方便数据的管理</strong></p>
<p>我们再回顾下 08 讲中提及的“B+树高度与数据存储量之间的关系”:</p>
<p><img src="assets/CioPOWC_QwuARpYFAABZFw1qMWk234.png" alt="image.png" /></p>
<p><img src="assets/CioPOWC_QwuARpYFAABZFw1qMWk234.png" alt="png" /></p>
<p>从表格中可以看到B+ 树的高度为 4 能存放数十亿的数据,一次查询只需要占用 4 次 I/O速度非常快。</p>
<p>但是当你使用分区之后,效果就不一样了,比如上面的表 t我们根据时间拆成每年一张表这时虽然 B+ 树的高度从 4 降为了 3但是这个提升微乎其微。</p>
<p>除此之外,分区表还会引入新的性能问题,比如非分区列的查询。非分区列的查询,即使分区列上已经创建了索引,但因为索引是每个分区文件对应的本地索引,所以要查询每个分区。</p>