高性能mysql 第7章 mysql高级特性之分区表
时间:2021-07-01 10:21:17
帮助过:20人阅读
TABLE employees (
id INT
NOT
NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE
NOT
NULL
DEFAULT ‘1970-01-01‘,
separated DATE
NOT
NULL
DEFAULT ‘9999-12-31‘,
RANGE Partitioning
3001
job_code INT
NOT
NULL,
store_id INT
NOT
NULL
)
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN (21)
)
- 分区列和索引列不匹配。例如在a列上建立了分区,在b列上建立了索引,在使用b=?进行检索的时候,如果没有a的条件来限制要扫描的分区,那么将要在每个分区上查找b索引。如果分区比较多,也是性能隐患。
EXPLAIN PARTITIONS 查看使用了哪些分区
- CREATE
TABLE trb1 (id INT, name VARCHAR(50), purchased DATE)
- PARTITION BY RANGE(id)
- (
- PARTITION p0 VALUES LESS THAN (3),
- PARTITION p1 VALUES LESS THAN (7),
- PARTITION p2 VALUES LESS THAN (9),
- PARTITION p3 VALUES LESS THAN (11)
- );
- INSERT
INTO trb1 VALUES
- (1, ‘desk organiser‘, ‘2003-10-15‘),
- (2, ‘CD player‘, ‘1993-11-05‘),
- Obtaining Information About Partitions
- 3044
- (3, ‘TV set‘, ‘1996-03-10‘),
- (4, ‘bookcase‘, ‘1982-01-10‘),
- (5, ‘exercise bike‘, ‘2004-05-09‘),
- (6, ‘sofa‘, ‘1987-06-05‘),
- (7, ‘popcorn maker‘, ‘2001-11-22‘),
- (8, ‘aquarium‘, ‘1992-08-04‘),
- (9, ‘study desk‘, ‘1984-09-16‘),
- (10, ‘lava lamp‘, ‘1998-12-25‘);
- mysql> EXPLAIN PARTITIONS SELECT * FROM trb1\G
- *************************** 1. row ***************************
- id: 1
- select_type: SIMPLE
- table: trb1
- partitions: p0,p1,p2,p3
- type: ALL
- possible_keys: NULL
- key: NULL
- key_len: NULL
- ref: NULL
- rows: 10
- Extra: Using filesort
- mysql> EXPLAIN PARTITIONS SELECT * FROM trb1 WHERE id < 5\G
- *************************** 1. row ***************************
- id: 1
- select_type: SIMPLE
- table: trb1
- partitions: p0,p1
- type: ALL
- possible_keys: NULL
- key: NULL
- key_len: NULL
- ref: NULL
- rows: 10
- Extra: Using
where
高性能mysql 第7章 mysql高级特性之分区表
标签:possible ati 历史 type 内存 ssi lamp asp code