mysql8 cookbook_<MySQL8 Cookbook > - 数据库优化

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.

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=";"

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;

Practice makes a man perfect. But to practice, you need some knowledge and training. This book helps you with that. Most day-to-day and practical scenarios are covered in this book. Chapter 1, MySQL 8 - Installing and Upgrading, describes how to install MySQL 8 on different flavors of Linux, upgrade to MySQL 8 from previous stable releases, and also downgrade from MySQL 8. Chapter 2, Using MySQL, takes you through the basic uses of MySQL, such as creating databases and tables; inserting, updating, deleting, and selecting data in various ways; saving to different destinations; sorting and grouping results; joining tables; managing users; other database elements such as triggers, stored procedures, functions, and events; and getting metadata information. Chapter 3, Using MySQL (Advanced), covers the latest additions to MySQL 8, such as the JSON datatype, common table expressions, and window functions. Chapter 4, Configuring MySQL, shows you how to configure MySQL and basic configuration parameters. Chapter 5, Transactions, explains the four isolation levels of RDBMS and how to use MySQL for transactions. Chapter 6, Binary Logging, demonstrates how to enable binary logging, various formats of binary logs, and how to retrieve data from binary logs. Chapter 7, Backups, covers various types of backups, the pros and cons of each method, and which one to choose based on your requirements. Chapter 8, Restoring Data, covers how to recover data from varies backups. Chapter 9, Replication, explains how to set up various replication topologies. The recipes on switching a slave from master-slave to chain replication and switching a slave from chain replication to master-slave is something that will interest the readers. Chapter 10, Table Maintenance, covers cloning tables. Managing big tables is something that this chapter will make you a maestro of. Installation and usage of third-party tools is also covered in this chapter. Chapter 11, Managing Tablespace, deals with recipes that will teach the readers how to resize, create, copy, and manage tablespaces. Chapter 12, Managing Logs, takes readers through error, general query, slow query, and binary logs. Chapter 13, Performance Tuning, explains query and schema tuning in detail. There are ample recipes in the chapter that will cover this. Chapter 14, Security, focuses on the aspects of security. Recipes on securing installation, restricting networks and users, setting and resetting of passwords, and much more in covered are detail.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值