说明
1、对于用户来说,分区表是一个独立的逻辑表,但底层由多个物理子表组成。
实现分区的代码实际上是通过封装一组底层表的对象,但对于SQL层来说,它是一个完全封装底层的黑盒。MySQL实现分区的方式也意味着索引也是按照分区的子表来定义的,没有全局索引。
2、用户的SQL语句需要对分区表进行优化,在SQL条件中要带上分区条件的列,这样才能将查询定位到少量的分区上。
否则就会扫描所有的分区,可以通过EXPLAINPARTITIONS来查看某个SQL语句会落在哪些分区上,从而进行SQL优化。
实例
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分区表的介绍,希望对大家有所帮助。更多mysql学习指路:
推荐操作系统:windows7系统、mysql5.8、DELL G3电脑