mysql执行计划

MySQL版本升级之5.6到5.7

℡╲_俬逩灬. 提交于 2019-12-23 16:30:38
两种升级方式 In-Place Upgrade : Involves shutting down the old MySQL version, replacing the old MySQL binaries or packages with the new ones, restarting MySQL on the existing data directory, and running mysql_upgrade . Logical Upgrade : Involves exporting existing data from the old MySQL version using mysqldump , installing the new MySQL version, loading the dump file into the new MySQL version, and running mysql_upgrade . 主从的升级: 主从想都替换二进制安装包为最新版本 停从,通过mysql_upgrade升级后,加参数 --skip-slaves-start 进行启动   加参数 --skip-networking重启主,拒绝来自应用的TCP/IP的连接,关闭binlog,执行mysql_upgrade,然后重启 注意点:在关闭服务时加参数 --innodb_fast

mysql新特性

随声附和 提交于 2019-12-23 03:35:37
5.7新特性 sys库 document store X protocol json支持 空间数据 虚拟列 query rewrite plugin 表空间传输 innodb undo表空间 表空间管理及加密 在线ddl 多源复制 增强半同步 group replication 基于trace阅读执行计划 优化器 8.0新特性 消除了buffer pool mutex 数据字典全部采用innodb引擎存储,支持DDL原子性,crash safe,元数据管理更完善 快速在线加新列 并行redo log,并提升redo log的I/O性能,可在线调整redo log buffer 新增倒序索引,不可见索引 优化器增强,增强CBO特性 支持会话级别set var 动态调整部分参数 重构SQL分析器 行锁增加SKIP LOCKED 和 NOWAIT 选项 新增事务CATS特性 在线修改undo log 数量 直方图 认证插件由sha256改成caching_sha2 新增role功能 自增列持久化 增强json 增加redo/undo log加密 增加resource group功能 新增更多数据字典 默认字符集改成utf8mb4 通用表达式CTE 窗口函数 restart 功能 13期问题 1.mysql有哪些索引,有什么注意的   存储上分类:btree,hash,r-tree  

mysql explain分析

廉价感情. 提交于 2019-12-23 01:50:08
通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈。通过expalin可以得到: 1. 表的读取顺序 2.表的读取操作的操作类型 3.哪些索引可以使用 4. 哪些索引被实际使用 5.表之间的引用 6.每张表有多少行被优化器查询 explain显示字段 1. id :语句的执行顺序标识 2. select_type:使用的查询类型,主要有以下几种查询类型: 1).simple 简单类型 语句中没有子查询或union 2). primary 最外层的select ,不是主键 3). union union是在select 语句中第二个select语句后面所有的select,第一个select 为primary 4).dependent subquery 子查询中内层中第一个select语句 5). dependent union 子查询中union且为union中第二个select开始的后面所有select,依赖于外部的结果集。 6). SUBQUERY 7).devived 派生表的查询语句 8). uncacheable subquery 结果集无法缓存的子查询 9). union result union中合并的结果 3. table 显示这一步所访问的 数据库 中表的名称 4. type 这列很重要,显示了连接使用了哪种类别,有无使用索引

MySQL Explain 性能分析

雨燕双飞 提交于 2019-12-23 00:49:44
explain select * from t1 straight_join t2 on ( t1 . a = t2 . a ) ; id SQL执行的顺序的标识 从大到小的执行 id相同时,执行顺序由上至下 select_type 标识查询类型,普通查询和联合查询、子查询之类的复杂查询 (1) SIMPLE(简单SELECT,不使用UNION或子查询等) (2) PRIMARY(查询中若包含任何复杂的子部分,最外层的select被标记为PRIMARY) (3) UNION(UNION中的第二个或后面的SELECT语句) (4) DEPENDENT UNION(UNION中的第二个或后面的SELECT语句,取决于外面的查询) (5) UNION RESULT(UNION的结果) (6) SUBQUERY(子查询中的第一个SELECT) (7) DEPENDENT SUBQUERY(子查询中的第一个SELECT,取决于外面的查询) (8) DERIVED(派生表的SELECT, FROM子句的子查询) (9) UNCACHEABLE SUBQUERY(一个子查询的结果不能被缓存,必须重新评估外链接的第一行) table 表名. 有时:derivedx(x是个数字,第几步执行的结果) mysql> explain select * from (select * from (

mysql面试题

孤街醉人 提交于 2019-12-22 03:04:26
1、 MySQL 的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 2、 mysql 中myisam与innodb的区别,至少5点 (1)、问5点不同; (2)、innodb引擎的4大特性 (3)、2者selectcount(*)哪个更快,为什么 3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义 (1)、varchar与char的区别 (2)、varchar(50)中50的涵义 (3)、int(20)中20的涵义 (4)、mysql为什么这么设计 4、问了innodb的事务与日志的实现方式 (1)、有多少种日志; (2)、事物的4种隔离级别 (3)、事务是如何通过日志来实现的,说得越深入越好。 5、问了MySQL binlog的几种日志录入格式以及区别 (1)、binlog的日志格式的种类和分别 (2)、适用场景; (3)、结合第一个问题,每一种日志格式在复制中的优劣。 6、问了下MySQL 数据库 cpu飙升到500%的话他怎么处理? (1)、没有经验的,可以不问; (2)、有经验的,问他们的处理思路。 7、sql优化 (1)、explain出来的各种item的意义; (2)、profile的意义以及使用场景; 8、备份计划,mysqldump以及xtranbackup的实现原理 (1)、备份计划; (2)、备份恢复时间; (3

MySQL 20个经典面试题

我是研究僧i 提交于 2019-12-22 03:04:11
1、MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; 2、MySQL中myisam与innodb的区别,至少5点 (1)、问5点不同; 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>.InnoDB支持MVCC, 而MyISAM不支持 4>.InnoDB支持外键,而MyISAM不支持 5>.InnoDB不支持全文索引,而MyISAM支持。 (2)、innodb引擎的4大特性 插入缓冲(insert buffer),二次写(double write),自适应哈希索引(ahi),预读(read ahead) (3)、2者selectcount(*)哪个更快,为什么 myisam更快,因为myisam内部维护了一个计数器,可以直接调取。 3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义 (1)、varchar与char的区别 char是一种固定长度的类型

MySQL面试题收集

走远了吗. 提交于 2019-12-22 03:03:54
1、MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; 2、MySQL中myisam与innodb的区别,至少5点 (1)、问5点不同; 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>.InnoDB支持MVCC, 而MyISAM不支持 4>.InnoDB支持外键,而MyISAM不支持 5>.InnoDB不支持全文索引,而MyISAM支持。 (2)、innodb引擎的4大特性 插入缓冲(insert buffer),二次写(double write),自适应哈希索引(ahi),预读(read ahead) (3)、2者selectcount(*)哪个更快,为什么 myisam更快,因为myisam内部维护了一个计数器,可以直接调取。 3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义 (1)、varchar与char的区别 char是一种固定长度的类型

mysql基本面试题

爱⌒轻易说出口 提交于 2019-12-22 03:03:34
1、MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; 2、MySQL中myisam与innodb的区别,至少5点 (1)、问5点不同; 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>.InnoDB支持MVCC, 而MyISAM不支持 4>.InnoDB支持外键,而MyISAM不支持 5>.InnoDB不支持全文索引,而MyISAM支持。 (2)、innodb引擎的4大特性 插入缓冲(insert buffer),二次写(double write),自适应哈希索引(ahi),预读(read ahead) (3)、2者selectcount(*)哪个更快,为什么 myisam更快,因为myisam内部维护了一个计数器,可以直接调取。 3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义 (1)、varchar与char的区别 char是一种固定长度的类型

mysql中的order by

六眼飞鱼酱① 提交于 2019-12-21 07:03:16
一、order by的原理 1、利用索引的有序性获取有序数据 当查询语句的 order BY 条件和查询的执行计划中所利用的 Index 的索引键(或前面几个索引键)完全一致,且索引访问方式为 range,ref 或者 index 的时候,MySQL 可以利用索引顺序而直接取得已经排好序的数据。这种方式的 order BY 基本上可以说是最优的排序方式了,因为 MySQL 不需要进行实际的排序操作,需要注意的是使用索引排序也有很多限制。 当对连接操作进行排序时,如果ORDER BY仅仅引用第一个表的列,MySQL对该表进行filesort操作,然后进行连接处理,此时,EXPLAIN输出“Using filesort”;否则,MySQL必须将查询的结果集生成一个临时表,在连接完成之后进行filesort操作,此时,EXPLAIN输出“Using temporary;Using filesort”。 注意: MySQL在查询时最多只能使用一个索引。因此,如果WHERE条件已经占用了索引,那么在排序中就不使用索引了 mysql> show create table test \G *************************** 1. row *************************** Table: test Create Table: CREATE TABLE

Linux下编译安装MySQL

夙愿已清 提交于 2019-12-20 07:22:03
一、环境准备 yum install -y ncurses-devel libaio-devel yum install -y cmake make useradd -s /sbin/nologin -M mysql wget --no-check-certificate https://downloads.mysql.com/archives/get/file/mysql-5.6.38.tar.gz 二、编译安装mysql cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \ -DMYSQL_DATADIR=/application/mysql-5.6.38/data \ -DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE