mysql 8.0 初识
1 下载并安装mysql 8.0
官网下载比较慢,这里选择163的镜像
http://mirrors.163.com/mysql/Downloads/MySQL-8.0/
下载版本mysql-8.0.14-linux-glibc2.12-x86_64.tar
vbox
# cat /etc/issue
CentOS release 6.5 (Final)
yum -y install lrzsz
mysql依赖libaio库,需要安装这些依赖库
# vim /etc/sysctl.conf
vm.swappiness = 0
# sysctl -p
# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
# vim /etc/profile
export HISTTIMEFORMAT='%F %T '
# source /etc/profile
# vim /etc/sysconfig/clock
ZONE=Asia/Shanghai
UTC=false
ARC=false
# rm /etc/localtime
rm: remove regular file `/etc/localtime'? y
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# date
Wed Apr 17 10:49:52 CST 2019
# vim /etc/selinux/config
SELINUX=disabled
# setenforce 0
# vim /etc/security/limits.conf
mysql soft nofile 65535
mysql hard nofile 65535
# service iptables stop
# chkconfig iptables off
# id mysql
id: mysql: No such user
# rpm -qa|grep -i mysql
mysql-libs-5.1.71-1.el6.x86_64
# rpm -ev mysql-libs-5.1.71-1.el6.x86_64 --nodeps
# groupadd mysql
# useradd -g mysql mysql
# passwd mysql
# vim /home/mysql/.bash_profile
export LANG=en_US.UTF-8
export PATH=/usr/local/mysql/bin:$PATH
export MYSQL_PS1="(\u@\h:\p) [\d]> "
# source /home/mysql/.bash_profile
# mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,slave,log/iblog},backup,scripts}
# tar xvf mysql-8.0.14-linux-glibc2.12-x86_64.tar
# tar xvJf mysql-8.0.14-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
# ln -s mysql-8.0.14-linux-glibc2.12-x86_64 mysql
# chown -R mysql:mysql /usr/local/mysql/
# chown -R mysql:mysql /data/mysqldata/
[mysql@DSI 3306]$ vim my.cnf
[mysql@DSI 3306]$ mkdir -p /data/mysqldata/loadfile
[mysql@DSI 3306]$ /usr/local/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysqldata/3306/data --user=mysql --initialize
[mysql@DSI 3306]$ /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &
[1] 5254
[mysql@DSI 3306]$ 2019-04-17T03:21:06.651957Z mysqld_safe Logging to '/data/mysqldata/3306/log/mysql-error.log'.
2019-04-17T03:21:06.673989Z mysqld_safe Starting mysqld daemon with databases from /data/mysqldata/3306/data
[mysql@DSI 3306]$ ps -ef|grep mysql
mysql 5254 7566 0 11:21 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf
mysql 6507 5254 2 11:21 pts/1 00:00:01 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysqldata/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/mysqldata/3306/log/mysql-error.log --open-files-limit=65535 --pid-file=DSI.pid --socket=/data/mysqldata/3306/mysql.sock --port=3306
[mysql@DSI 3306]$ cat /data/mysqldata/3306/log/mysql-error.log |grep "root@localhost"
2019-04-17T11:20:50.506529+08:00 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: #Fki/+cl7HdI
[mysql@DSI 3306]$ /usr/local/mysql/bin/mysql -uroot -p'#Fki/+cl7HdI' -S /data/mysqldata/3306/mysql.sock
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.14 Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. (root@localhost:mysql.sock) [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY '***';
Query OK, 0 rows affected (0.00 sec)
(root@localhost:mysql.sock) [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
(root@localhost:mysql.sock) [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
mysql 8.0的分区表只支持innodb、ndbcluster,其他引擎的不支持。
下载安装mysql工具集
# wget https://cdn.mysql.com//Downloads/MySQLGUITools/mysql-utilities-1.6.5-1.el6.noarch.rpm
加载示例数据
# wget 'https://codeload.github.com/datacharmer/test_db/zip/master' -O master.zip
(root@localhost:mysql.sock) [employees]> show tables;
+----------------------+
| Tables_in_employees |
+----------------------+
| current_dept_emp |
| departments |
| dept_emp |
| dept_emp_latest_date |
| dept_manager |
| employees |
| salaries |
| titles |
在mysql8.0,已经删掉了.frm表结构文件
[root@DSI employees]# ll
total 182520
-rw-r-----. 1 mysql mysql 131072 Apr 17 14:21 departments.ibd
-rw-r-----. 1 mysql mysql 26214400 Apr 17 14:22 dept_emp.ibd
-rw-r-----. 1 mysql mysql 131072 Apr 17 14:22 dept_manager.ibd
-rw-r-----. 1 mysql mysql 23068672 Apr 17 14:21 employees.ibd
-rw-r-----. 1 mysql mysql 109051904 Apr 17 14:23 salaries.ibd
-rw-r-----. 1 mysql mysql 28311552 Apr 17 14:22 titles.ibd
使用正则表达式查询
(root@localhost:mysql.sock) [employees]> select count(*) from employees where first_name rlike '^christ';
+----------+
| count(*) |
+----------+
| 1157 |
创建用户
(root@localhost:mysql.sock) [employees]> create user if not exists 'system'@'10.15%' identified with mysql_native_password by '****';
(root@localhost:mysql.sock) [employees]> grant all privileges on *.* to 'system'@'10.15%';
(root@localhost:mysql.sock) [employees]> show create user 'system'@'10.15%'; ##查询创建用户语句
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER for system@10.15% |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER 'system'@'10.15%' IDENTIFIED WITH 'mysql_native_password' AS '*4DB42A770506EA05234DECCD02E3FCCB77D03B5C' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(root@localhost:mysql.sock) [employees]> alter user 'system'@'10.15%' password expire interval 90 day; ##设置过期时间
创建角色
(root@localhost:mysql.sock) [employees]> create role 'app_read_only','app_writes','app_developer';
(root@localhost:mysql.sock) [employees]> grant select on employees.* to 'app_read_only';
(root@localhost:mysql.sock) [employees]> grant insert,update,delete on employees.* to 'app_writes';
(root@localhost:mysql.sock) [employees]> grant all on employees.* to 'app_developer';
(root@localhost:mysql.sock) [employees]> create user emp_read_only identified by 'emp_passs';
(root@localhost:mysql.sock) [employees]> grant 'app_read_only' to 'emp_read_only'@'%';
获取有关数据库和表的信息
use information_schema;
静态元数据:table_schema、table_name、table_type、engine
动态表元数据:auto_incremant、avg_row_length、data_free
在mysql8.0中,动态表元数据将默认被缓存,可以通过information_schema_stats进行配置,并且可以改为
set @@global.information_schema_status='LATEST';
(root@localhost:mysql.sock) [employees]> use information_schema;
(root@localhost:mysql.sock) [information_schema]> show tables;
--tables\columns\files\innodb_tablespaces\innodb_tablestats\processlist
使用JSON
从mysql 5.7开始,mysql支持JavaScript对象表示(JSON)数据类型,JSON文档以二进制格式存储
(root@localhost:mysql.sock) [employees]> create table emp_details(emp_no int primary key,details json);
insert into emp_details(emp_no,details)
values(1,'{"location":"IN","phone":"+123456768","email":"abc@xx.com","address":{"line1":"abc","line2":"xys street","city":"BBB","PIN":"12345"}}');
(root@localhost:mysql.sock) [employees]> select emp_no, details->'$.address.PIN' pin from emp_details;
+--------+---------+
| emp_no | pin |
+--------+---------+
| 1 | "12345" |
+--------+---------+
公用表达式(CTE)
with cte as(select year(from_date) as year,sum(salary) as sum from salaries group by year)
select q1.year,q2.year as next_year,q1.sum,q2.sum as next_sum,100*(q2.sum-q1.sum)/q1.sum as pct from
cte as q1,cte as q2
where q1.year=q2.year-1;
递归cte
with recursive cte (n) AS(select 1
union ALL
select n+1 from cte where n<5)
select * from cte;
生成列--的值是根据列定义中包含的表达式计算得出的,两种类型
--virtual,当从表中读取记录时,将计算该列--这个虚拟列不占用任何空间
--stored,当向表中写入新记录时,将计算列并将其作为常规列存储在表中
CREATE TABLE `employees_01` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` enum('M','F') NOT NULL,
`hire_date` date NOT NULL,
`full_name` varchar(30) as (concat(first_name,' ',last_name)),
PRIMARY KEY (`emp_no`),
key `name` (`first_name`,`last_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
窗口函数
Name Description
CUME_DIST() Cumulative distribution value
DENSE_RANK() Rank of current row within its partition, without gaps
FIRST_VALUE() Value of argument from first row of window frame
LAG() Value of argument from row lagging current row within partition
LAST_VALUE() Value of argument from last row of window frame
LEAD() Value of argument from row leading current row within partition
NTH_VALUE() Value of argument from N-th row of window frame
NTILE() Bucket number of current row within its partition.
PERCENT_RANK() Percentage rank value
RANK() Rank of current row within its partition, with gaps
ROW_NUMBER() Number of current row within its partition
--行号
MYSQL> select concat(first_name, " ",last_name) as full_name,salary,row_number()over(order by salary desc) as 'rank' from employees
join salaries on salaries.emp_no=employees.emp_no limit 10;
+-------------------+--------+------+
| full_name | salary | rank |
+-------------------+--------+------+
| Tokuyasu Pesch | 158220 | 1 |
| Tokuyasu Pesch | 157821 | 2 |
| Honesty Mukaidono | 156286 | 3 |
| Xiahua Whitcomb | 155709 | 4 |
| Sanjai Luders | 155513 | 5 |
| Tsutomu Alameldin | 155377 | 6 |
| Tsutomu Alameldin | 155190 | 7 |
| Tsutomu Alameldin | 154888 | 8 |
| Tsutomu Alameldin | 154885 | 9 |
| Willard Baca | 154459 | 10 |
+-------------------+--------+------+
--分隔 parition
select year(hire_date) hire_date_year ,salary,row_number()over(PARTITION by year(hire_date) order by salary desc) as 'rank' from employees
join salaries on salaries.emp_no=employees.emp_no order by salary desc limit 10;
+----------------+--------+------+
| hire_date_year | salary | rank |
+----------------+--------+------+
| 1985 | 158220 | 1 |
| 1985 | 157821 | 2 |
| 1986 | 156286 | 1 |
| 1985 | 155709 | 3 |
| 1987 | 155513 | 1 |
| 1985 | 155377 | 4 |
| 1985 | 155190 | 5 |
| 1985 | 154888 | 6 |
| 1985 | 154885 | 7 |
| 1985 | 154459 | 8 |
+----------------+--------+------+
-第一个、最后一个和第n个值
select year(hire_date) hire_date_year,salary,rank()over w as 'rank',
first_value(salary) over w as 'first',
nth_value(salary,3) over w as 'third',
last_value(salary) over w as 'last'
from employees join salaries on salaries.emp_no=employees.emp_no
window w as (partition by year(hire_date) order by salary desc)
order by salary desc limit 10;
+----------------+--------+------+--------+--------+--------+
| hire_date_year | salary | rank | first | third | last |
+----------------+--------+------+--------+--------+--------+
| 1985 | 158220 | 1 | 158220 | NULL | 158220 |
| 1985 | 157821 | 2 | 158220 | NULL | 157821 |
| 1986 | 156286 | 1 | 156286 | NULL | 156286 |
| 1985 | 155709 | 3 | 158220 | 155709 | 155709 |
| 1987 | 155513 | 1 | 155513 | NULL | 155513 |
| 1985 | 155377 | 4 | 158220 | 155709 | 155377 |
| 1985 | 155190 | 5 | 158220 | 155709 | 155190 |
| 1985 | 154888 | 6 | 158220 | 155709 | 154888 |
| 1985 | 154885 | 7 | 158220 | 155709 | 154885 |
| 1985 | 154459 | 8 | 158220 | 155709 | 154459 |
+----------------+--------+------+--------+--------+--------+
mysql 8.0 配置mysql
静态参数和动态参数,一些参数已经不再支持,详细参考官方文档
https://downloads.mysql.com/docs/refman-8.0-en.pdf
Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 8.0
Options and Variables Introduced in MySQL 8.0
--innodb_buffer_pool_size 可以动态调节大小,不再需要重启
--innodb_buffer_pool_instances
--innodb_log_file_size 更改不需要重启
更改数据目录
(root@localhost:mysql.sock) [employees]> show variables like '%datadir%';
+---------------+----------------------------+
| Variable_name | Value |
+---------------+----------------------------+
| datadir | /data/mysqldata/3306/data/ |
+---------------+----------------------------+
--停止mysql,创建新目录(权限),rsync -av /data/mysqldata/3306/data/ /new_datadir
二进制日志
--binlog_expire_logs_seconds
--expire_logs_days : Purge binary logs after this many days. Deprecated as of MySQL 8.0.3
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 693
#190417 14:21:46 server id 20190417 end_log_pos 775 CRC32 0x15ee14ef Query thread_id=33 exec_time=0 error_code=0
SET TIMESTAMP=1555482106/*!*/;
BEGIN
/*!*/;
--server id 20190417,产生 改事件的服务器的serverid
--end_log_pos 下一个事件的开始位置
--thread_id 指示那个线程执行了该事件
--exec_time 在主服务器上,它代表执行事件的时间,在从服务器上,代表从服务器的最终执行时间与主服务器的开始执行时间之间的差值,这个差值可以作为备份相对于主服务器滞后多少的指标
--error_code 执行事件的结果
[mysql@DSI backup]$ mysqldump -uroot -p -S /data/mysqldata/3306/mysql.sock --databases employees --single-transaction --default-character-set=utf8 --master-data=2> /data/mysqldata/backup/employees_backup01.sql
# yum install glib2-devel mysql-devel zlib-devel pcre-devel cmake gcc-c++ git
git clone https://github.com/maxbube/mydumper.git
cmake .
make
make install
--# yum install https://github.com/maxbube/mydumper/releases/download/v0.9.5/mydumper-0.9.5-1.el6.x86_64.rpm
$ /usr/local/bin/mydumper -uroot -p -S /data/mysqldata/3306/mysql.sock -B employees -o /data/mysqldata/backup/mydumper_bak
[mysql@DSI ~]$ /usr/local/bin/mydumper -u root -p *** -S /data/mysqldata/3306/mysql.sock -B employees -o /data/mysqldata/backup/mydumper_bak
[mysql@DSI ~]$ cd /data/mysqldata/backup/mydumper_bak/
[mysql@DSI mydumper_bak]$ ll
total 168324
-rw-rw-r--. 1 mysql mysql 138 Apr 17 17:28 employees.current_dept_emp-schema.sql
-rw-rw-r--. 1 mysql mysql 950 Apr 17 17:28 employees.current_dept_emp-schema-view.sql
-rw-rw-r--. 1 mysql mysql 332 Apr 17 17:28 employees.departments-schema.sql
-rw-rw-r--. 1 mysql mysql 351 Apr 17 17:28 employees.departments.sql
-rw-rw-r--. 1 mysql mysql 127 Apr 17 17:28 employees.dept_emp_latest_date-schema.sql
-rw-rw-r--. 1 mysql mysql 845 Apr 17 17:28 employees.dept_emp_latest_date-schema-view.sql
-rw-rw-r--. 1 mysql mysql 594 Apr 17 17:28 employees.dept_emp-schema.sql
-rw-rw-r--. 1 mysql mysql 14160012 Apr 17 17:28 employees.dept_emp.sql
-rw-rw-r--. 1 mysql mysql 606 Apr 17 17:28 employees.dept_manager-schema.sql
-rw-rw-r--. 1 mysql mysql 1168 Apr 17 17:28 employees.dept_manager.sql
-rw-rw-r--. 1 mysql mysql 285 Apr 17 17:28 employees.emp_details-schema.sql
-rw-rw-r--. 1 mysql mysql 343 Apr 17 17:28 employees.emp_details.sql
-rw-rw-r--. 1 mysql mysql 565 Apr 17 17:28 employees.employees_01-schema.sql
-rw-rw-r--. 1 mysql mysql 419 Apr 17 17:28 employees.employees-schema.sql
-rw-rw-r--. 1 mysql mysql 17722965 Apr 17 17:28 employees.employees.sql
-rw-rw-r--. 1 mysql mysql 455 Apr 17 17:28 employees.salaries-schema.sql
-rw-rw-r--. 1 mysql mysql 118693182 Apr 17 17:28 employees.salaries.sql
-rw-rw-r--. 1 mysql mysql 98 Apr 17 17:28 employees-schema-create.sql
-rw-rw-r--. 1 mysql mysql 466 Apr 17 17:28 employees.titles-schema.sql
-rw-rw-r--. 1 mysql mysql 21708866 Apr 17 17:28 employees.titles.sql
-rw-rw-r--. 1 mysql mysql 136 Apr 17 17:28 metadata
数据字典
数据字典是元数据,跟数据库对象,表、索引和表列,在mysql 8.0中引入,元数据的物理位置位于mysql数据库目录中的innodb独立表空间中
mysql数据字典的优点:
--以集中式数据字典模式统一存储字典数据
--删除了基于文件的元数据存储
--对字典数据的事务性、崩溃时的安全存储
--对字典对象的统一和集中缓存
--对一些information_schema表的实现进行简化和改进
--原子DDL
管理undo表空间
mysql 8.0,innodb_undo_tablespaces,动态变量
管理通用表空间
mysql 8引入了通用表空间,是共享的表空间,可以存储多个表的数据。
(root@localhost:mysql.sock) [employees]> create tablespace ts1 add datafile 'ts1.ibd' engine=innodb;
Query OK, 0 rows affected (0.02 sec)
(root@localhost:mysql.sock) [employees]> create table table_gen_ts1(id int primary key) tablespace ts1;
Query OK, 0 rows affected (0.03 sec) 降序索引
(root@localhost:mysql.sock) [employees]> explain select * from employees order by first_name asc,last_name desc limit 10;
+----+-------------+-----------+------------+------+---------------+------+---------+------+--------+----------+----------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-----------+------------+------+---------------+------+---------+------+--------+----------+----------------+
| 1 | SIMPLE | employees | NULL | ALL | NULL | NULL | NULL | NULL | 299733 | 100.00 | Using filesort |
+----+-------------+-----------+------------+------+---------------+------+---------+------+--------+----------+----------------+
1 row in set, 1 warning (0.00 sec) (root@localhost:mysql.sock) [employees]> alter table employees add index name_desc(first_name asc,last_name desc);
Query OK, 0 rows affected (0.94 sec)
Records: 0 Duplicates: 0 Warnings: 0 (root@localhost:mysql.sock) [employees]> explain select * from employees order by first_name asc,last_name desc limit 10;
+----+-------------+-----------+------------+-------+---------------+-----------+---------+------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-----------+------------+-------+---------------+-----------+---------+------+------+----------+-------+
| 1 | SIMPLE | employees | NULL | index | NULL | name_desc | 124 | NULL | 10 | 100.00 | NULL |
+----+-------------+-----------+------------+-------+---------------+-----------+---------+------+------+----------+-------+ sys schema
启用一个计数器
(root@localhost:mysql.sock) [employees]> call sys.ps_setup_enable_instrument('statement');
+------------------------+
| summary |
+------------------------+
| Enabled 22 instruments |
+------------------------+
1 row in set (0.00 sec)
--按类型列出买个主机的语句(insert/select)
(root@localhost:mysql.sock) [employees]> select statement,total,total_latency,rows_sent,rows_examined,rows_affected,
-> full_scans from sys.host_summary_by_statement_type where host='localhost' order by total desc limit 5;
+-------------------+-------+---------------+-----------+---------------+---------------+------------+
| statement | total | total_latency | rows_sent | rows_examined | rows_affected | full_scans |
+-------------------+-------+---------------+-----------+---------------+---------------+------------+
| set_option | 221 | 19.45 ms | 0 | 0 | 0 | 0 |
| insert | 168 | 51.21 s | 0 | 0 | 3919015 | 0 |
| select | 112 | 30.29 s | 11757148 | 57562351 | 0 | 56 |
| Field List | 94 | 42.97 ms | 0 | 0 | 0 | 0 |
| show_create_table | 50 | 10.32 ms | 0 | 0 | 0 | 0 |
+-------------------+-------+---------------+-----------+---------------+---------------+------------+
--按类型列出每个用户的语句
(root@localhost:mysql.sock) [employees]> select statement,total,total_latency,rows_sent,rows_examined,rows_affected,
-> full_scans from sys.user_summary_by_statement_type order by total desc limit 5;
+-------------+-------+---------------+-----------+---------------+---------------+------------+
| statement | total | total_latency | rows_sent | rows_examined | rows_affected | full_scans |
+-------------+-------+---------------+-----------+---------------+---------------+------------+
| set_option | 221 | 19.45 ms | 0 | 0 | 0 | 0 |
| insert | 168 | 51.21 s | 0 | 0 | 3919015 | 0 |
| select | 113 | 30.29 s | 11757153 | 57562980 | 0 | 57 |
| Field List | 94 | 42.97 ms | 0 | 0 | 0 | 0 |
| show_status | 56 | 133.97 ms | 24864 | 49728 | 0 | 56 |
+-------------+-------+---------------+-----------+---------------+---------------+------------+
--冗余索引
select * from sys.schema_redundant_indexes where table_name='employees';
--未使用的索引
(root@localhost:mysql.sock) [employees]> select * from sys.schema_unused_indexes where object_name='employees';
+---------------+-------------+------------+
| object_schema | object_name | index_name |
+---------------+-------------+------------+
| employees | employees | name_desc |
+---------------+-------------+------------+
--每个主机执行的语句
(root@localhost:mysql.sock) [employees]> select * from sys.host_summary order by statements desc limit 5;
+-------------+------------+-------------------+-----------------------+-------------+----------+-----------------+---------------------+-------------------+--------------+----------------+------------------------+
| host | statements | statement_latency | statement_avg_latency | table_scans | file_ios | file_io_latency | current_connections | total_connections | unique_users | current_memory | total_memory_allocated |
+-------------+------------+-------------------+-----------------------+-------------+----------+-----------------+---------------------+-------------------+--------------+----------------+------------------------+
| localhost | 950 | 1.39 m | 87.53 ms | 97 | 24110 | 1.28 s | 1 | 12 | 1 | 262.35 KiB | 7.12 GiB |
| 10.15.7.126 | 206 | 19.82 s | 96.19 ms | 102 | 11543 | 413.85 ms | 1 | 7 | 1 | 1.34 MiB | 454.41 MiB |
+-------------+------------+-------------------+-----------------------+-------------+----------+-----------------+---------------------+-------------------+--------------+----------------+------------------------+
--对表的统计
select * from sys.schema_table_statistics limit 1;
--对带缓冲区(buffer)的表的统计
select * from sys.schema_table_statistics_with_buffer limit 10;
--语句分析
select * from sys.statement_analysis order by exec_count desc limit 1;
--消耗最大的tmp_disk_tables
select * from sys.statement_analysis order by tmp_disk_tables desc limit 1;
mysql 8.0 初识的更多相关文章
- [MySQL 5.6] 初识5.6的optimizer trace
在MySQL5.6中,支持将执行的SQL的查询计划树记录下来,目前来看,即使对于非常简单的查询,也会打印出冗长的查询计划,看起来似乎不是很可读,不过对于一个经验丰富,对查询计划的生成过程比较了解的 ...
- MYSQL之数据库初识、安装详解、sql语句基本操作
目录 MYSQL之数据库初识及安装详解 1.什么是数据库? 1.什么是数据?(data) 2.什么是数据库?(databases,简称DB) 2.为什要用数据库? 3.什么是数据库管理系统?(Data ...
- mysql 5.0.46安装配置
http://os.chinaunix.net/a2008/0801/986/000000986346.shtml RPM包和源码包存放位置 /usr/local/src 源码包编译安装位置(pref ...
- RedHat下apache\ftp\mysql 4.0 的安装方法
RedHat下安装这三个服务的方法大同小异 Apache服务: 找到Apache安装包: rpm -ivh httpd-2.0.40-21.i386.rpm 等待安装完成即可 检查安装结果: rpm ...
- MySQL 8.0.0 版本发布,亮点都在这了!
导读 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开 ...
- Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://127.0.0.1:3306/test'
原来的配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http ...
- MySQL :: MySQL 5.0 Reference Manual :: 14.4 The MEMORY (HEAP) Storage Engine
MySQL :: MySQL 5.0 Reference Manual :: 14.4 The MEMORY (HEAP) Storage Engine The MEMORY (HEAP) Stora ...
- MySQL 6.0安装图解
MySQL 6.0安装图解 由于免费,MySQL数据库在项目中用的越来越广泛,而且它的安全性能也特别高,不亚于oracle这样的大型数据库软件.可以简单的说,在一些中小型的项目中,使用MySQL ,P ...
- What's New In MySQL 8.0
由于8.0内有很多C++11特性.需要gcc4.8版本以上.Rhel6系列默认gcc是4.7.在安装gcc6.1之后仍然检查不过. 原因可能是6.1版本不一定高于4.7,暂不讨论.鉴于升级gc ...
随机推荐
- Flask 5 模板1
NOTE 1.VF的作用:生成请求的响应.一般来说请求会改变程序的状态,这种变化会在视图函数中产生. eg.用户在网站中注册了一个新账户,用户在表单中输入电子邮件地址和密码,然后提交到服务器,服务器接 ...
- [转] sql server 跨数据库调用存储过程
A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( ) =null , ) =null ) AS BEGIN select N'A' AS a , N'B' ...
- HDU 3315 My Brute(二分图最佳匹配+尽量保持原先匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=3315 题意: 有S1到Sn这n个勇士要和X1到Xn这n个勇士决斗,初始时,Si的决斗对象是Xi. 如果Si赢了X ...
- msgsrvmgr.cpp:5:37: fatal error: kdl_conversions/kdl_msg.h: No such file or directory #include <kdl_conversions/kdl_msg.h>
/home/xxx/ros_workspace/src/bp_protocol_bridge/protospot/src/msgsrvmgr.cpp::: fatal error: kdl_conve ...
- UVA-10779 Collectors Problem (网络流建模)
题目大意:有n个人,已知每人有ki个糖纸,并且知道每张糖纸的颜色.其中,Bob希望能和同伴交换使得手上的糖纸数尽量多.他的同伴只会用手上的重复的交换手上没有的,并且他的同伴们之间不会产生交换.求出Bo ...
- 安装MySQL后要做的事
安装MySQL后要修改的配置 [mysql] default-character-set=utf8 [mysqld] # 关闭域名反解 skip_name_resolve # 每表一个独立的表空间文件 ...
- bzoj2631
题解: lct+链上修改 每一次修改的时候记录lazy标记 如果有了乘法,加法的lazy标记也要相应的随之变化 代码: #pragma GCC optimize(2) #include<bits ...
- 『转』三星推出Android智能手表Galaxy Gear
苹果定下来本月10日召开新品发布会,而它的竞争对手三星却抢先一步.今天凌晨,三星在德国柏林一口气发布了三款重量级产品.三星智能手表Galaxy Gear最引人关注,其将于9月25日陆续在全球上市,售价 ...
- 使用c++实现一个FTP客户端(二)
接上篇http://www.cnblogs.com/jzincnblogs/p/5213978.html,这篇主要记录编程方面的重点. 客户端使用了Windows Socket提供的API,支持上传. ...
- .Net脱壳工具 de4dot参数说明/简易教程
de4dot /? 帮助原文 使用方法 de4dot "d:\xx.exe" -p xc -p xc 指定壳类型 , 这里是xc,表示Xenocode壳.这样会在exe的相同目录 ...