MYSQL
文章平均质量分 73
Able张
高大上
展开
-
Mysql中的回表查询与索引覆盖
了解一下MySQL中的回表查询与索引覆盖。回表查询要说回表查询,先要从InnoDB的索引实现说起。InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Index)。InnoDB的聚集索引InnoDB聚集索引的叶子节点存储行记录,因此InnoDB必须要有且只有一个聚集索引。1.如果表定义了PK(Primary Key,主键),那么PK就是聚集索引。2.如果表没有定义PK,则第一个NOT NULL UNIQUE的列就是聚集索引。原创 2021-05-14 14:36:44 · 150 阅读 · 0 评论 -
如何快速定位当前数据库消耗 CPU 最高的 sql 语句?
如何快速定位消耗 CPU 最高的 sql 语句,怎么做?看看下面的介绍。概述如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下...主要是了解如何定位的思路,具体看官网介绍..参考:https://www.percona.com/blog/2020/04/23/a-simple-approach-to-troubleshooting-high-cpu-in-mysql/主要意思是针对定位C原创 2021-05-12 09:19:30 · 356 阅读 · 0 评论 -
MySQL中Checkpoint技术
1,checkpoint产生的背景数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操作的效率,buffer pool中修改之后的数据,并没有立即写入到磁盘,这有可能会导致内存中数据与磁盘中的数据产生不一致的情况。事物要求之一是持久性(Durability),buffer pool与磁盘数据的不一致性的情况下发生故障,可能会导致数据无法持久化。为了防止在内存中修改但尚未写入到磁盘的数据,在发生故障重启数据之后产生事物未持久化的情况,是通过日志(redo log)先行的转载 2021-04-15 10:06:50 · 340 阅读 · 0 评论 -
pt-table-checksum使用实践
在工作中接触最多的就是mysql replication,由于现在公司也还在使用mysql 5.1.x版本,在复制方面还是比较多的问题,比如主库宕机或者从库宕机都会导致复制中断,通常我们需要进行人为修复(mysql 5.5版本解决大部分问题),或者很多时候需要把一个从库提升为主库,但对从库和主库的数据一致性不能保证一样,所以就利用 pt-table-checksum 工作来检查主从的一致性,以及通过 pt-table-sync 如何修复这些不一致的数据。当然如果你数据量小,slave只是当做一个备份使用,那原创 2021-04-06 15:46:51 · 621 阅读 · 0 评论 -
MySQL查看表占用空间大小
在mysql中有一个默认的数据表`information_schema`,information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在information_schema表里面,所以请勿删改此表。代码:1,切换数据库use `information_schema`;2,查看数原创 2021-03-10 10:04:15 · 337 阅读 · 0 评论 -
Mysql的sql_mode设置
1、查询sql_modeselect @@GLOBAL.sql_mode或select @@SESSION.sql_mode2、设置sql_mode通过命令设置SET GLOBAL sql_mode = 'modes...';或SET SESSION sql_mode = 'modes...';在配置文件中设置在/etc/my.cnf的[mysqld]下设置[mysqld]sql_mode=STRICT_TRANS_TABLES,NO_AU...原创 2021-02-20 10:17:29 · 663 阅读 · 1 评论 -
MYSQL 写入性能参数优化
写入性能优化的一些参数说完了如何修改和查看RDS参数,我们接下来看一下一些和写入性能相关的参数,限于篇幅,我们不能介绍所有的MYSQL参数。innodb_buffer_pool_size在MYSQL中buffer pool用来缓存表和索引的数据,以便加速对数据的处理。如果在buffer在pool中无法获取数据(所谓cache miss),那么就会产生磁盘的随机IO请求,这会降低处理速度,所以配置一个合适大小的buffer pool对性能至关重要。RDS中innodb_buffer_pool_si原创 2021-02-01 14:22:20 · 1571 阅读 · 0 评论 -
Innodb重要参数优化
1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。下面是对线上mysql5.6版本的数据翻译 2021-01-29 15:42:38 · 1436 阅读 · 1 评论 -
b树 b+树 红黑树知识点
b树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字;一个 m 阶的B树是一个有以下属性的树:每一个节点最多有 m 个子节点 每一个非叶子节原创 2021-01-12 14:10:42 · 572 阅读 · 0 评论 -
MySQL 精华总结
❝写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了。个人建议把面试题看作是费曼学习法中的回顾、简化的环节,准备面试的时候,跟着题目先自己讲给自己听,看看自己会满意吗,不满意就继续学习这个点,如此反复,好的offer离你不远的,奥利给一、MySQL架构和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处...转载 2020-11-20 09:39:44 · 266 阅读 · 0 评论 -
mysql qps tps 计算
(1)QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql > show global status like 'Question%'; (2)TPS(每秒事务量) TPS = (Com_commit + Com_rollback) / seconds mysql > show global status like 'Com_commit'; mysql > show global status like .原创 2020-06-03 15:11:06 · 282 阅读 · 1 评论 -
mysql 登录密码验证修改
关于这个问题是在 《 基于MySQL Yum存储库在Linux-7.2上安装MySQL-5.7.21数据库服务(实战篇) 》时遇到的问题,这是 mysql 初始化时,使用临时密码,修改自定义密码时,由于自定义密码比较简单,就出现了不符合密码策略的问题。密码策略问题异常信息:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements如下图:解决办法:1、查看 mysql 初始的密码策.原创 2020-05-28 09:23:08 · 764 阅读 · 0 评论 -
centos7.0 安装多个5.7 mysql
下载官网的linux包 : 选择linux-Generic(centos)我下载的是 mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz2. 解压到/usr/local/ 下面, 更名mysql#tar xzvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz#mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql3. 创建文件在mysql文...原创 2020-05-26 11:50:35 · 293 阅读 · 0 评论 -
mysql 性能优化方向
按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果。利用 mindmanger 整理了思路,形成如下图,每个点在网上都能找到说明,并记录下。形成了优化的思路:1 连接 Connections经常会遇见”mysql: error 1040: too many connections”的情况,一种是访问量确实很高,mysql服务器抗不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是mysql配置文件中max_connections值过小:my..原创 2020-05-21 15:18:13 · 168 阅读 · 0 评论 -
innobackupex自动备份脚本(增量备份,自动压缩)
#说明:脚本执行策略为每天执行一次,执行前需要先建立config文件,并在config文件#中添加#backup_full=#backup_pre_name=#即可,注意路径。#备份策略,每七天一个循环,第一天为全备份,第二天至第六天为增量备份。#后续会增加已备份文件压缩转移定期删除部分增量为备份单库,全量为所有库#!/bin/bashbackup_full_dir...原创 2020-04-29 14:45:58 · 482 阅读 · 0 评论 -
利用Xtrabackup进行单库备份、单表恢复实例
写在前面: 笔者在实际工作中发现,对于数据恢复来说,更多情况下面临的问题是:单个数据库中的某个或者某几个表出现了问题,很少对整个库的数据进行恢复,除非硬盘损坏或者手抖执行了DROP,笔者就单库备份,单表恢复的场景进行记录(需要全库备份、全库恢复需求的同行,自行百度),如有不当之处,望请留言指正,不胜感激!环境准备: 1)Xtrabackup版本的选择不同版本的MySQL...转载 2020-04-27 17:24:04 · 1524 阅读 · 0 评论 -
如何在MySQL中分配innodb_buffer_pool_size
innodb_buffer_pool_size是整个MySQL服务器最重要的变量。1. 为什么需要innodb buffer pool?在MySQL5.5之前,广泛使用的和默认的存储引擎是MyISAM。MyISAM使用操作系统缓存来缓存数据。InnoDB需要innodb buffer pool中处理缓存。所以非常需要有足够的InnoDB buffer pool空间。2. MySQL I...原创 2020-04-27 09:45:06 · 557 阅读 · 0 评论 -
mysql binlog详解说明和使用方法
一般线上MySQL服务器,为了数据存储安全,都会默认开启binlog功能,以便恢复日后服务器故障或者更改删除等误操作的数据,而坏处是binlog日志文件增长速度快,很快会占满磁盘空间,所以对binlog日志文件的处理显得格外重要! 定义 二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。 my.cnf配置 b...原创 2020-04-25 21:43:39 · 723 阅读 · 0 评论 -
MySQL 二进制日志备份
MySQL 中很少提及日志的备份,但日志备份也是非常重要,可以恢复到指定时间点。日志备份可以使用自带的工具mysqlbinlog 进行备份,mysqlbinlog 也是解析 binlog 的工具。相关参考: Using mysqlbinlog to Back Up Binary Log Files示例:# 备份指定 binlog 文件(备份的文件名有前缀 "prefix_")....转载 2020-04-25 21:42:27 · 202 阅读 · 0 评论 -
CentOS中对MySql的root用户重置密码
使用修改启动服务参数的方式来更新user表,达到无密码登陆的目的。1.关闭系统下运行的mysql服务(1)杀掉进程号达到关闭目的先使用ps -ef|grep mysql查找进程号,然后使用kill+ PID的方式杀掉进程。(2)使用systemctl工具来关闭mysql服务systemctl stop mysql2.修改mysql的启动选项更新user表,达到无密码登...原创 2020-04-25 18:22:04 · 165 阅读 · 0 评论 -
MySQL权限整理及授权命令
MySQL是经常要使用的一种关系型数据库,数据库作为存储重要数据的地方,相应的,对数据库的授权管理,也必须很小心,下面,我将MySQL的权限作了整理,方便需要的时候查看。MySQL权限级别服务器 》 数据库 》 表 》 列另外还有存储过程、视图和索引MySQL权限列表:权 限 作用范围 作 用 all 服务器 所有权限 select ...原创 2020-04-24 10:50:30 · 531 阅读 · 0 评论 -
mysql生产环境配置文件
MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的。MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的进行优化,需要不断的调试,才能达到不同环境的最优选择。首先介绍一下MySQL配置文件中不同模块[client] MySQL客户端应用模块,只有MySQL附带的客户端应用程序保证可以读取此模块...原创 2020-04-21 17:48:53 · 438 阅读 · 0 评论 -
MySQL----mysql_secure_installation 安全配置向导
安装完mysql-server 会提示可以运行mysql_secure_installation。运行mysql_secure_installation会执行几个设置:--为root用户设置密码--删除匿名账号--取消root用户远程登录--删除test库和对test库的访问权限--刷新授权表使修改生效通过这几项的设置能够提高mysql库的安全。建议生产环境中mysql安装这完成后...原创 2020-04-06 15:41:33 · 195 阅读 · 0 评论 -
统计MySQL数据表大小
有时候需要查询MySQL数据库中各个表大小,该如何操作呢?MySQL中有一个名为 information_schema 的数据库,在该库中有一个 TABLES 表,这个表主要字段分别是:TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小其...原创 2020-03-16 20:56:56 · 421 阅读 · 0 评论 -
Centos7.3下面mysql的max_connections不生效的问题
【1】环境: 腾讯云, 安装mysql5.7. 用 show variables like '%max_connections%'; 发现只有150个连接数【2】注意:一定要放在 [mysqld] 下面第一个配置。。 vi /usr/my.cnf 回车;打开文件后按“i”键进入编辑状态;在“[mysqld]”下面添加“max_connections=6000”,按E...原创 2020-03-10 09:25:45 · 507 阅读 · 0 评论 -
MySQL创建用户与授权
一. 创建用户命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明:username:你将创建的用户名host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密...原创 2020-03-05 10:21:26 · 335 阅读 · 0 评论 -
数据库设计三大范式
数据库设计范式什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式:第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否...原创 2020-01-01 10:47:57 · 211 阅读 · 0 评论 -
mysql 主服务器双机热备
mysql双机热备的实现Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份的数据库中。实现mysql数据库的热备份。要想实现双机的热备,首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都高于3.2。还有一个基本的原则就是作为从数据库的数据版本可以高于主服务器...原创 2019-11-03 12:07:19 · 367 阅读 · 0 评论 -
Linux mysqldump 冷备mysql
yum -y install holland-mysqldump.noarchmysqldump备份简单操作:mysqldump-h[ip]-P[端口号]-u[用户名]-p[密码]数据库名表名 >导出的文件名.sqlmysqldump-h[ip]-P[端口号]-u[用户名]-p[密码]数据库名表名1表名2表名3| gzip >导出...原创 2019-11-03 11:52:42 · 367 阅读 · 0 评论 -
MySQL索引优化分析
为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等啥子?撸起袖子就是干!案例分析我们先简单了解一下非关系型数据库和关系型数据库的区别。MongoDB是NoSQL中的一种。NoSQL的全称...原创 2019-03-12 16:57:45 · 134 阅读 · 0 评论 -
MYSQL 部分函数的运用(Iif, isnull , ifnull, nullif)
IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF()的返回值为数字值或字符串值,具体情况视其所在语境而定。mysql> SELECT IF(1>2,2,3); -> 3mysql> SELECT IF(1 -> 'yes'mys转载 2015-12-26 10:19:40 · 7670 阅读 · 0 评论 -
MYSQL 储存过程 用户登录更新token创建时间,过期时间,账户是否冻结
CREATE PROCEDURE `memberTables`(username VARCHAR(50),password VARCHAR(50),mac char(17),token varchar(50))BEGIN DECLARE num int; DECLARE sqlstatus int; DECLARE code int; select count(*) into nu原创 2015-12-29 10:02:02 · 3390 阅读 · 0 评论 -
浅谈MySQL表类型
MySQL为我们提供了很多表类型供选择,有MyISAM、ISAM、HEAP、BerkeleyDB、InnoDB,MERGE表类型,萝卜白菜各有所爱是不假,可是真正选择何种表类型还是要看业务需要啊,每一种表类型都有其自己的属性和优点。下面我们来简单的讨论一下。MyISAM表类型:MyISAM表(TYPE=MYISAM)是ISAM类型的一种延伸,具有很多优化和增强的特性。是转载 2015-12-30 17:45:42 · 358 阅读 · 0 评论 -
mysql 储存过程游标的使用
book 表book_log 表创建储存过程create procedure selectfunc()BEGINdeclare no_mode int default 0;declare tname varchar(100) default '';declare sqls cursor for select name from dms_book;decla原创 2015-10-26 17:11:15 · 748 阅读 · 0 评论 -
MySql 定时任务 Event Scheduler
在MySql 5.1的版本以后支持定时任务 Event Scheduler,有点类似于Linux 的contab,可以创建 Event 来定时执行MySql的语句,具体的文档详见MySql的官方文档http://dev.mysql.com/doc/refman/5.1/en/events-privileges.html。1.开启全局变量event_scheduler用来设定是否服务转载 2015-08-13 17:30:42 · 881 阅读 · 0 评论 -
mysql分表的3种方法
一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果。在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql转载 2015-07-15 17:21:35 · 627 阅读 · 0 评论 -
php mysql防止sql注入详细说明
最近在折腾 PHP + MYSQL的编程。了解了一些 PHP SQL 注入攻击的知识,于是写了这篇文章 http://www.xiaohui.com/weekly/20070314.htm,总结一下经验。在我看来,引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php.ini 中的 magic_quotes_gpc选项没有打开,被置为 off 2. 开发转载 2014-05-12 11:28:40 · 558 阅读 · 0 评论 -
MYSQL 导入导出命令
在MySQL Qurey Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令:mysql> source d:/myprogram/database/db.sql;另附mysql常用命令:一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码1、例1:连接到本机上的MYSQL转载 2014-04-09 11:26:40 · 633 阅读 · 0 评论 -
MYSQL慢查询
MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍时间 2014-10-12 10:26:15 CSDN博客原文 http://blog.csdn.net/cloud_ll/article/details/39826147 最近有个开发团队抱怨我们平台包含的mysql cluster不行,总是报mysql的”heartbeat Error“,分析了他们收集的转载 2015-03-06 09:48:32 · 393 阅读 · 0 评论 -
mysql 优化
procedure analyse();语法如下select column from table_name procedure analyse();以下引用一段文章:PROCEDURE ANALYSE 通过分析select查询结果对现有的表的每一列给出优化的建议。PROCEDURE ANALYSE的语法如下:SELECT ... FROM ... WHERE ... PROCE转载 2015-01-14 13:38:17 · 384 阅读 · 0 评论