MySQL8的数据库优化讲义
admin
2023-04-20 03:42:07
0

下文内容主要给大家带来MySQL8的数据库优化讲义,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

EXPLAIN

EXPLAIN
select dept_name from dept_emp join employees on dept_emp.emp_no=employees.emp_no join departments on departments.dept_no=dept_emp.dept_no where employees.first_name='Aamer';

EXPLAIN format=JSON select dept_name from dept_emp join employees on dept_emp.emp_no=employees.emp_no join departments on departments.dept_no=dept_emp.dept_no where employees.first_name='Aamer';

mysql> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|              30 |
+-----------------+
1 row in set (0.01 sec)

mysql> explain format=json for connection 30\G
ERROR 3012 (HY000): EXPLAIN FOR CONNECTION command is supported only for SELECT/UPDATE/INSERT/DELETE/REPLACE

mysql> pager grep rows

mysql> SELECT e.emp_no,salary from  salaries s join employees e on s.emp_no=e.emp_no where first_name='Adam';
2384 rows in set (0.24 sec)

mysql> pager
Default pager wasn't set, using stdout.

MySQL8的数据库优化讲义

mysqlslap

mysqlslap 对于模拟多个用户同时对 MySQL 发起“进攻”提供了方便。同时详细的提供了“高负荷*** MySQL”的详细数据报告。

#mysqlslap -uroot -p --create-schema=employees --query="SELECT e.emp_no,salary from  salaries s join employees e on s.emp_no=e.emp_no where first_name='Adam';" -c 100 -i 100
Enter password:
Benchmark
Average number of seconds to run all queries: 0.995 seconds
Minimum number of seconds to run all queries: 0.876 seconds
Maximum number of seconds to run all queries: 1.155 seconds
Number of clients running queries: 100
Average number of queries per client: 1

#mysqlslap -uroot -p  --auto-generate-sql --concurrency=50,100 --number-of-queries=1000  -i 5  --debug-info
Enter password:
Benchmark
Average number of seconds to run all queries: 0.148 seconds
Minimum number of seconds to run all queries: 0.148 seconds
Maximum number of seconds to run all queries: 0.148 seconds
Number of clients running queries: 50
Average number of queries per client: 20

Benchmark
Average number of seconds to run all queries: 0.143 seconds
Minimum number of seconds to run all queries: 0.143 seconds
Maximum number of seconds to run all queries: 0.143 seconds
Number of clients running queries: 100
Average number of queries per client: 10

mysqlslap -uroot -p  --auto-generate-sql --only-print

#mysqlslap -uroot -p --concurrency=50,100,200 --iterations=1 --number-int-cols=4 --number-char-cols=35 \
--auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=innodb --number-of-queries=200
Enter password:
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.042 seconds
Minimum number of seconds to run all queries: 0.042 seconds
Maximum number of seconds to run all queries: 0.042 seconds
Number of clients running queries: 50
Average number of queries per client: 4

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.022 seconds
Minimum number of seconds to run all queries: 0.022 seconds
Maximum number of seconds to run all queries: 0.022 seconds
Number of clients running queries: 100
Average number of queries per client: 2

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.515 seconds
Minimum number of seconds to run all queries: 0.515 seconds
Maximum number of seconds to run all queries: 0.515 seconds
Number of clients running queries: 200
Average number of queries per client: 1

#mysqlslap -uroot -p --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200
Enter password:
Benchmark
Average number of seconds to run all queries: 0.002 seconds
Minimum number of seconds to run all queries: 0.002 seconds
Maximum number of seconds to run all queries: 0.007 seconds
Number of clients running queries: 50
Average number of queries per client: 1

mysqlslap --concurrency=5 --iterations=5 --query=query.sql --create=create.sql --delimiter=";"

参考:https://my.oschina.net/moooofly/blog/152547

where、order by、group by、表连接都会使用到索引  
主键的选择:
1、唯一非空
2、尽量的小,因为所有的二级索引都会存储主键
3、选择一个单调自增的键,物理行是按照主键排序的

alter table employees add [unqiue] index idx_name(first_name(10));
alter table employees drop index idx_name;

对于以上关于MySQL8的数据库优化讲义,如果大家还有更多需要了解的可以持续关注我们的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。

 

相关内容

热门资讯

【今日要闻】“网易棋牌到底是不... 有 亲,根据资深记者爆料网易棋牌是可以开挂的,确实有挂(咨询软件无需打开...
今日重大发现“嘻游联盟到底有挂... 家人们!今天小编来为大家解答嘻游联盟透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
终于懂了“新星游牛牛是不是有挂... 有 亲,根据资深记者爆料新星游牛牛是可以开挂的,确实有挂(咨询软件无需打...
我来教教您“飞驰娱乐究竟有挂吗... 您好:飞驰娱乐这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
【第一资讯】“微乐陕西挖坑到底... 您好:微乐陕西挖坑这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
玩家分享攻略“皇豪互娱开挂器?... 网上科普关于“皇豪互娱有没有挂”话题很是火热,小编也是针对皇豪互娱作*弊开挂的方法以及开挂对应的知识...
中南钢铁申请高炉自动调整参数方... 国家知识产权局信息显示,广东中南钢铁股份有限公司申请一项名为“一种高炉自动调整参数的方法及其控制系统...
玩家分享攻略“明星麻将究竟有挂... 家人们!今天小编来为大家解答明星麻将透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...
原创 固... 在过去一段时间内,固态电池被视为电车的终极方案,然而随着业界对固态电池技术的深入研发却发现,固态电池...
终于了解“欢乐众娱究竟有挂吗?... 您好:欢乐众娱这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...