日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql压力测试并优化_MySQL压力测试索引优化效果演示全过程

發布時間:2025/3/21 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql压力测试并优化_MySQL压力测试索引优化效果演示全过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、模擬數據庫數據

drop database if exists oldboy;

create database oldboy charset utf8mb4 collate utf8mb4_bin;

use oldboy;

create table t_100w (id int,num int,k1 char(2),k2 char(4),dt timestamp);

delimiter //

create procedure rand_data(in num int)

begin

declare str char(62) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

declare str2 char(2);

declare str4 char(4);

declare i int default 0;

while i

set str2=concat(substring(str,1+floor(rand()*61),1),substring(str,1+floor(rand()*61),1));

set str4=concat(substring(str,1+floor(rand()*61),2),substring(str,1+floor(rand()*61),2));

set i=i+1;

insert into t_100w values (i,floor(rand()*num),str2,str4,now());

end while;

end;

//

delimiter ;

插入100w條數據:

call rand_data(1000000);

commit;

2、檢查數據可用性

select count(*) from oldboy. t_100w;

select table_name,table_rows from information_schema.tables where table_schema='oldboy';

select * from t_100w where id<5;

3、在沒有優化之前我們使用mysqlslap來進行壓力測試

例子1:模擬100個用戶同時做20次查詢

mysqlslap --defaults-file=/etc/my.cnf \

--concurrency=100 --iterations=1 --create-schema='oldboy' \

--query="select * from oldboy.t_100w where k2='780P'" engine=innodb \

--number-of-queries=2000 -uroot -p123456 -verbose

執行上述數據需要花費600秒

例子2:模擬10個用戶同時做20次查詢

mysqlslap --defaults-file=/etc/my.cnf \

--concurrency=10 --iterations=1 --create-schema='oldboy' \

--query="select * from oldboy.t_100w where k1='ab' order by k2;" engine=innodb \

--number-of-queries=200 -uroot -p123456 -verbose

執行上述數據需要花費59秒

3.查看索引執行計劃

use oldboy;

desc t_100w;

show index from t_100w;

例子1:

desc select * from oldboy.t_100w where k2='780P';(type為all)

例子2:

desc select * from oldboy.t_100w where k1='ab' order by k2;(type為all)

4.創建索引優化

例子1:

alter table t_100w add index k2(k2);

desc select * from oldboy.t_100w where k2='780P';(type為ref)

例子2:

alter table t_100w add index k1k2(k1,k2);

desc select * from oldboy.t_100w where k1='ab' order by k2;(type為ref)

5、優化之后使用mysqlslap來進行壓力測試

例子1:模擬100個用戶同時做20次查詢

mysqlslap --defaults-file=/etc/my.cnf \

--concurrency=100 --iterations=1 --create-schema='oldboy' \

--query="select * from oldboy.t_100w where k2='780P'" engine=innodb \

--number-of-queries=2000 -uroot -p123456 -verbose

執行上述數據需要花費0.169秒

例子2:模擬10個用戶同時做20次查詢

mysqlslap --defaults-file=/etc/my.cnf \

--concurrency=10 --iterations=1 --create-schema='oldboy' \

--query="select * from oldboy.t_100w where k1='ab' order by k2;" engine=innodb \

--number-of-queries=200 -uroot -p123456 -verbose

執行上述數據需要花費0.124秒

總結

以上是生活随笔為你收集整理的mysql压力测试并优化_MySQL压力测试索引优化效果演示全过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。