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以後開始支援分割槽功能。分割槽就是根據一定的規則,將資料庫中的表分為多個更小的部分。但在邏輯上,還是只有乙個表或者乙個索引,...