mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-11-17 14:43:43 +08:00
fix img
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user