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压力测试索引优化效果演示全过程相关推荐

  1. mysql部门人员排序设计_MySQL数据库访问性能优化

    MYSQL应该是最流行的WEB后端数据库.大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储. MYS ...

  2. mysql sql优化_MySQL数据库SQL语句优化原理专题(三)

    需求 做过开发的同学,对分页肯定不会陌生,因为很多前台页面展示,为了更好的展示数据,就会用到分页,所以如何写一个高性能的分页SQL语句,是每一个开发人员需要掌握的技能. 分页SQL 这里给大家写一个分 ...

  3. mysql怎么安装安全补丁_MySQL 安装与安全优化

    MySQL 安装与安全优化 Ubuntu 环境下 MySQL 安装与安全优化. 安装 sudo apt-get updatesudo apt-get install mysql-server mysq ...

  4. MySQL第九章索引_MySQL高级(索引优化+慢查询定位)

    一.先谈谈事务 1. ACID特性 1.1 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用: 1.2 一致性: 执行事务前后,数据库从一个一致性状态转换 ...

  5. mysql三个字段最优索引_mysql 多列索引优化

    Mysql所有的列都可以使用索引,.对相关列使用索引是提高SELECT操作性能的最佳途径.根据存储引擎定义每个表的最大索引数和最大索引长度.所有存储引擎支持每个表至少16个索引,总索引长度至少256字 ...

  6. mysql和mybatis优化_MySQL + mybatis的SQL优化方案

    sql优化方案: 1.添加索引,在条件参数,关联参数上建立参数, 2.字段优化,需要什么字段查什么字段 3.模糊查询尽量使用: select * from tableName a where a.na ...

  7. mysql解释器优化_MySQL——SQL性能分析优化利器之Explain

    系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...

  8. mysql获取查询策略语句_MySQL数据库查询性能优化策略

    优化查询 使用Explain语句分析查询语句 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句. 通过对查询语句的分析,可以了解查询语句的执行 ...

  9. mysql order by 索引名字_MySQL如何利用索引优化ORDER BY排序语句

    MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...

最新文章

  1. 图像切割之(一)概述
  2. web主题公园版权信息破解:script.js加密文件
  3. Swift Objective-C 访问级别控制
  4. 【Python基础】Python数据分析实战之分布分析
  5. 【HAOI2018】染色【反向二项式反演】【NTT卷积】
  6. C++基础知识友元friend、友元函数和友元类
  7. LeetCode 1816. 截断句子
  8. 超级便宜的鸿蒙开发板环境搭建-编译-烧录
  9. java json乱码_Java Http请求传json数据乱码问题的解决
  10. mysql oracle优缺点_oracle 的优缺点
  11. SVN部署与简单使用
  12. C# try-catch-finally 语句异常的类型
  13. python拦截游戏封包_TCP封包拦截类模块 API HooK封包拦截源码
  14. 【详解】MD5加密真的安全吗?不安全有什么解决办法?
  15. 使用QRencode 生成个人微信二维码,欢迎大家来微信和我做朋友
  16. 原神3.0上半角色活动祈愿-2源码
  17. python编程技术解决英语单词测试(包括添加英文单词、查询英文单词和查询英文单词)以及绘制雷达图功能
  18. 台式计算机上的fn键是哪个,笔记本上fn是哪个键fn键功能详解【方法详解】
  19. 编程修养 - 来自网络整理
  20. 《上古卷轴5:天际》控制台代码之特技

热门文章

  1. 中小企业如何用在线CRM留住客户
  2. C++中接口与实现分离的技术
  3. 打算尝试瑜伽,看是否能解决长期困扰的胃痛问题
  4. 一维行滤波提取俯视图下的车道线特征
  5. 高版本glibc环境编译兼容低版本机器的.so文件
  6. crtmpserver流媒体服务器的介绍与搭建
  7. DCOM 示例:演示如何远程调用 COM 对象
  8. 2021-10-06
  9. 困境中的帮助者与被助者
  10. linux系统修改bond的ip,Linux下快速设定ip bond,linux设定ipbond