mysql通過建立分割槽和索引來提高查詢效率

2021-08-29 16:07:50 字數 1540 閱讀 7799

drop table if exists `test`;

create table test (

id int(10) unsigned not null auto_increment,

time datetime not null comment '業務時間',

primary key ( id , time )

) engine=innodb auto_increment=12001 default charset=utf8

partition by range (to_days(time))

(partition part_201501 values less than (to_days('2015-02-01'))engine = innodb,

partition part_201502 values less than (to_days('2015-03-01'))engine = innodb,

partition part_201503 values less than (to_days('2015-04-01'))engine = innodb,

partition part_201504 values less than (to_days('2015-05-01'))engine = innodb,

partition part_201505 values less than (to_days('2015-06-01'))engine = innodb,

partition part_201506 values less than (to_days('2015-07-01'))engine = innodb) ;

1:如果test的表存在即刪除

2:建立test表,繫結主鍵

3:partition part_201501 values less than (to_days('2015-02-01'))engine = innodb

​ 建立分割槽 partition後面接分割槽名(part_201501 ) less than (to_days('2015-02-01') 代表值小於2015- 02-01屬於該分割槽。

4:插入資料

5:select * from test partition (part_201501);

​ 檢視屬於part_201501分割槽的資料有多少條

6:select partition_name part,partition_expression expr,partition_description descr,table_rows from information_schema.partitions where table_schema =schema() and table_name='test';

檢視test表的所有分割槽。

alter table test add index test_index (id) ;
1:test代表索引建立的表 test_index 代表索引名稱 id代表索引繫結的列

2:show index from test 檢視test表的索引

mysql建立分割槽索引 mysql建立分割槽索引

該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 mysql建立分割槽索引 一 分割槽表 把所有的資料放在乙個表中,但是物理儲存資料會根據一定規則存放到不同的檔案中 二 什麼時候使用分割槽表?資料比較大時候,數以億記或者數以tb記的資料,如果使用索引在空間和維護消耗巨大,甚至索引沒有效果了.例子 檢視是...

mysql 建立分割槽索引嗎 mysql建立分割槽索引

該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 mysql建立分割槽索引 一 分割槽表 把所有的資料放在乙個表中,但是物理儲存資料會根據一定規則存放到不同的檔案中 二 什麼時候使用分割槽表?資料比較大時候,數以億記或者數以tb記的資料,如果使用索引在空間和維護消耗巨大,甚至索引沒有效果了.例子 檢視是...

mysql建立最小分割槽 mysql 建立分割槽

list分割槽 鍵值通過自定義的list來確定寫入到哪個分割槽中。優勢 支援int,時間,varchar等值 劣勢 需要自己寫相應資料的從屬 寫入或者查詢到哪個分割槽 即後期若分割槽條件修改需要再配置。create table t test unid int auto increment uuid ...