MySQL性能优化 分区
简述 分区是指根据一定的虽则,数据库将表分解为多个更小的,更容易管理的部分,就访问数据库而言,逻辑上只有一张表或一个索引,但实际上这张表可能又多个物理分区共同构成,每一个分区都是一个独立的对象,可以独自处理,也可以作为表的一部分进行处理,分区对应用来说是完全透明的,不影响应用的业务逻辑。 MySQL采用分区的优点: 1.和单个磁盘或单个文件系统比较,可以 存储更多的数据 。 2. 优化查询 ,采用‘分而治之’的思想,例如在 where 子句中包含分区条件时,可以只扫描必要的一个或几个分区,避免全表扫描带来的性能缺失。此外,在使用 SUM 和 COUNT 等聚合函数时,可以采用归并的思想,只需汇总每一个分区的查询结果来提高效率。 3.对于过期或垃圾数据的清除,可以通过删除特定分区来减少查询。 特别注意: 1.大部分存储引擎( InnoDB , MyISAM , Memory 等)均支持分区, MERGE 和 CSV 不支持分区; 2.可以使用 SHOW VARIABLES LIKE '%partition%' (版本在5.6以下,5.6以上使用 SHOW PLUGINS )来查看当前版本的MySQL是否支持分区; 3.同一个分区表必须使用同一个存储引擎,但是对同一个MySQL服务器中,同一个数据库中对不同分区表使用不同的存储引擎; 4.MySQL分区适用于一个表的所有数据和索引