文章分类 - MySQL进阶
1
摘要:汇总了和MySQL运维开发相关的所有工具,工具包含:性能测试,状态分析,SQL路由等方面 1工具套件集 percona-toolkit 链接:https://www.percona.com/software/mysql-tools/percona-toolkit oak-toolkit 链接:htt
阅读全文
摘要:一、引言 最近由于业务需求,需要将公有云RDS(业务库)的大表数据归档至私有云MySQL(历史库),以缩减公有云RDS的体积和成本。 那么问题来了,数据归档的方式有n种,选择哪种呢?经过一番折腾,发现使用percona的pt-archiver就可以轻松并优雅地对MySQL进行数据归档。 待我娓娓道来
阅读全文
摘要:原文地址:https://yq.aliyun.com/articles/608235?spm=a2c4e.11153940.0.0.73801a287xj9cS 一、 Mysqldump备份结合binlog日志恢复 使用mysqldump进行全库备份,并使用binlog日志备份,还原时,可以使用bi
阅读全文
摘要:MHA简介: MHA,即MasterHigh Availability Manager and Toolsfor MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQLReplication 环境,目的在于维持Master主库的高可用性。 MHA(Ma
阅读全文
摘要:前言:本章主要讲解MySQL主从复制的操作步骤。由于环境限制,主机使用Windows环境,从机使用用Linux环境。另外MySQL的版本最好一致,笔者采用的MySQL5.7.22版本,具体安装过程请查询相关资料。 1.主从复制的基本原理 slave会从master读取binlog来进行数据同步。主要
阅读全文
摘要:前言:前面学习了表锁的相关知识,本篇主要介绍行锁的相关知识。行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高。 0.准备 #1.创建相关测试表tb_innodb_lock,注意数据库引擎为InnoDB。 #2.创建索引。 1.行锁定基本演示 #1.
阅读全文
摘要:前言:全局查询日志用于保存所有的sql执行记录,该功能主要用于测试环境,在生产环境中永远不要开启该功能。 1.如何开启 #1.通过my.cnf配置开启该功能。 注:对my.cnf文件配置后,需重启mysql。 ①通过命令查看全局查询日志是否开启成功。 ②查看全log_globalquery.log文
阅读全文
摘要:前言:锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机资源(如CPU、RAM、I/O等)的争用外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据
阅读全文
摘要:前言:Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 1.分析步骤 #1.开启Show Profile功能,默认该功能是关闭的,使用前需开启。 #2.根据MySQL高级知
阅读全文
摘要:1.为什么要小表驱动大表呢 类似循环嵌套 for(int i=5;.......) { for(int j=1000;......) {} } 如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作,如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗。这就是为什
阅读全文
摘要:前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用。 准备 #1.创建tb_dept_bigdata(部门表)。 #2.创建tb_emp_bigdata(员工表)。 #3.开启log_bin_trust_function_creators参数。 由于在创建函数时,可能会报:T
阅读全文
摘要:前言:慢查询日志是MySQL提供的一种日志记录,它记录MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的sql语句,该sql语句会被记录到慢查询日志中。慢查询日志主要与explain进行联合分析。 1.如何开启慢查询日志 默认情况下,MySQL数据库没有开启慢查
阅读全文
摘要:前言:在使用order by时,经常出现Using filesort,因此对于此类sql语句需尽力优化,使其尽量使用Using index。 0.准备 #1.创建test表。 #2.创建索引。 1.根据Case分析order by的使用情况 Case 1: 分析: ①在c1,c2,c3,c4上创建了
阅读全文
摘要:#1.创建test表(测试表)。 #2.创建索引。 1.根据以下Case分析索引的使用情况 Case 1: 分析: ①创建复合索引的顺序为c1,c2,c3,c4。 ②上述四组explain执行的结果都一样:type=ref,key_len=132,ref=const,const,const,cons
阅读全文
摘要:前言:索引优化的目的主要是让索引不失效,本篇通过相关案例对索引优化进行讲解。 0.准备 创建经典的tb_emp表。 注:创建了tb_emp表,并插入了4条数据。 1.最佳左前缀法则 #1.定义:在创建了多列索引的情况下,查询从索引的最左前列开始且不能跳过索引中的列。 最佳左前缀法则就是说如果创建了多
阅读全文
摘要:前言:前面已经学习了explain(执行计划)的相关知识,这里利用explain对索引进行优化分析。 0.准备 首先创建三张表:tb_emp(职工表)、tb_dept(部门表)和tb_desc(描述表) 1)tb_emp表。 2)tb_dept表。 3)tb_desc表。 注:这里强行将员工表与部门
阅读全文
摘要:前言:explain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句。explain主要用于分析查询语句或表结构的性能瓶颈。 注:本系列随笔如无特殊说明都MySQL版本都为5.7.22。 1.explain的作用 通过explain+sq
阅读全文
摘要:前言:索引在sql调优部分占据着重要的位置,了解并深入索引对我们来说也是非常重要的。本篇主要介绍MySQL中索引的相关知识点。 1.索引是什么 MySQL官方对索引的定义:索引(Index)是帮助MySQL高效获取数据的数据结构。因此索引的本质就是数据结构。索引的目的在于提高查询效率,可类比字典、书
阅读全文
摘要:准备 join主要根据两表或多表之间列的关系,从这些表中进行数据的查询。 首先创建两张表:tb_emp(员工表)和tb_dept(部门表),并插入相关测试数据。 1.tb_emp表。 2.tb_dept表。 从上表插入的数据可知outman是没有对应部门的。 1.inner join 注:A表示左表
阅读全文
摘要:1.关于MySQL的一些文件 MySQL如何安装、如何配置自启动,这里不进行讲述,可自行搜索相关安装教程进行处理。这里主要介绍MySQL的主要配置文件。 ①二进制日志log-bin:用于主从复制。 ②错误日志log-error:默认关闭,记录严重的警告和错误信息,每次启动和关闭的详细信息等。 ③查询
阅读全文
1

浙公网安备 33010602011771号