MySQL 5 5 分割槽效能測試之索引使用情況

2021-06-20 21:54:04 字數 2346 閱讀 9645

mysql 5.5 分割槽效能測試之索引使用情況

1.建立乙個測試表

[sql]view plain

copy

create

table test (   

id varchar(20) not

null,  

name

varchar(20) not

null,  

submit_time datetime not

null,  

index time_index (submit_time),  

index id_index (id)  

)engine=myisam  

partition by range columns(submit_time)  

(  partition p1 values less than ('2010-02-01'),  

partition p2 values less than ('2010-03-01'),  

partition p3 values less than ('2010-04-01'),  

partition p4 values less than ('2010-05-01'),  

partition p5 values less than ('2010-06-01'),  

partition p6 values less than ('2010-07-01'),  

partition p7 values less than ('2010-08-01'),  

partition p8 values less than ('2010-09-01'),  

partition p9 values less than ('2010-10-01'),  

partition p10 values less than ('2010-11-01'),  

partition p11 values less than ('2010-12-01')    

);  

2.寫乙個儲存過程,插入資料

[sql]view plain

copy

delimiter //    

create

procedure mark_test()  

begin

declare v int

default 0;   

while v 

do   

insert

into test values (v,'testing partitions',adddate('2010-01-01', interval v hour));  

set v = v + 1;  

end while;  

end //  

delimiter ;  

3.實驗開始

上面可以看到,這個是查某乙個分割槽裡面的某一些內容,所以完全可以用到index.效果很好..

上面可以看到,跨分割槽查詢,效果也非常不錯.

上面可以到看,跨分割槽查詢是,如果某個分割槽沒有用到索引(p4就是全表掃瞄),整個也沒有用到index.但好的是,只掃瞄需要的分割槽

上面可以看到,如果你不用分割槽的字段查詢,是很杯具的,因為mysql不知道你分割槽的index是分別存放到哪個分割槽上,所以要全index掃瞄, 

3.順便看看表結構

a. 圖中test3 是innodb的儲存引擎, 

test3.frm是表結構.

test3.par是分割槽表的資訊.

資料和索引都是存放在表空間裡面在

b.圖中test是myisam的儲存引擎, 

test.frm是表結構,

test.par是分割槽表的資訊.

test#p#p10.myd是資料檔案之一,

test#p#p10.myi是索引檔案之一

mysql 5 6 分割槽 四 分割槽和鎖定

在mysql 5.6.5及更早版本中,對於 myisam執行dml或ddl語句時,實際執行表級鎖的 儲存引擎 影響分割槽表的這種語句對整個 施加了鎖定 也就是說,所有分割槽都被鎖定,直到語句完成。mysql 5.6.6實現 分割槽鎖定修剪 這在許多情況下消除了不必要的鎖定。在mysql 5.6.6及...

mysql 5 6分割槽維護

mysql 5.6分割槽維護 表和分割槽的一些維護任務,適用於在mysql5.6的分割槽表上用sql語句進行。維護分割槽表,可以使用支援分割槽表的語句 check table,optimize table,analyze table,and repair table 你可以使用alter table...

MySql分割槽學習總結一 分割槽概述

mysql分割槽學習總結一 分割槽概述 通過看書和查資料對mysql的分割槽進行了簡單了解。稱還有映像記錄一下,以便將來使用時回顧。分割槽簡述 什麼是分割槽?mysql從5.1以後開始支援分割槽功能。分割槽就是根據一定的規則,將資料庫中的表分為多個更小的部分。但在邏輯上,還是只有乙個表或者乙個索引,...