mysql分区表的介绍
说明
1、对于用户来说,分区表是一个独立的逻辑表,但底层由多个物理子表组成。
实现分区的代码实际上是通过封装一组底层表的对象,但对于SQL层来说,它是一个完全封装底层的黑盒。MySQL实现分区的方式也意味着索引也是按照分区的子表来定义的,没有全局索引。
2、用户的SQL语句需要对分区表进行优化,在SQL条件中要带上分区条件的列,这样才能将查询定位到少量的分区上。
否则就会扫描所有的分区,可以通过EXPLAINPARTITIONS来查看某个SQL语句会落在哪些分区上,从而进行SQL优化。
实例
代码语言:javascript复制mysql> explain partitions select count(1) from user_partition where id in (1,2,3,4,5);
---- ------------- ---------------- ------------ ------- --------------- --------- --------- ------ ------ --------------------------
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
---- ------------- ---------------- ------------ ------- --------------- --------- --------- ------ ------ --------------------------
| 1 | SIMPLE | user_partition | p1,p4 | range | PRIMARY | PRIMARY | 8 | NULL | 5 | Using where; Using index |
---- ------------- ---------------- ------------ ------- --------------- --------- --------- ------ ------ --------------------------
1 row in set (0.00 sec)
以上就是mysql分区表的介绍,希望对大家有所帮助。