mysql
文章平均质量分 81
xiaoleinb
这个作者很懒,什么都没留下…
展开
-
MySQL8.0 Online DDL
● INPLACE:操作避免复制表数据,在操作的准备和执行阶段,可以简单地使用表上的独占元数据锁。1)Prepare阶段:初始化阶段会根据存储引擎、用户指定的操作、用户指定的 ALGORITHM 和 LOCK 计算 DDL 过程中允许的并发量,这个过程中会获取一个 shared metadata lock,用来保护表的结构定义。它以Block的方式管理DML记录的存放,一个Block的大小为由参数innodb_sort_buffer_size控制,默认大小为1M,初始化阶段会申请两个Block。转载 2024-02-29 18:14:47 · 537 阅读 · 0 评论 -
MySQL 误操作后数据恢复(update,delete忘加where条件)
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽。最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者DBA的我们改如何处理呢?下面我分别针对update和delete操作忘加where条件导致全表更新的处理方法。一. update 忘加where条件误操作恢复数据(binglog格式必须是ROW)1.创建测试用的数据表mysql> create table t1 ( -> id int转载 2022-03-07 14:24:35 · 1340 阅读 · 0 评论 -
mysql死锁分析
如果我们的业务处在一个非常初级的阶段,并发程度比较低,那么我们可以几年都遇不到一次死锁问题的发生,反之,我们业务的并发程度非常高,那么时不时爆出的死锁问题肯定让我们非常挠头。不过在死锁问题发生时,很多没有经验的同学的第一反应就是成为一只鸵鸟:这玩意儿很高深,我也看不懂,听天由命吧,又不是一直发生。其实如果大家认真研读了我们之前写的 3 篇关于 MySQL 中语句加锁分析的文章:超全面 MySQL 语句加锁分析(上篇)(求转)超全面 MySQL 语句加锁分析(中篇)(求转)超全面 MySQL 语句加锁分转载 2022-02-08 17:28:28 · 286 阅读 · 0 评论 -
mydumper使用总结
mydumper 的安装依赖于mysql软件,要使用mydumper 则服务器上必须先安装mysqlmydumper 安装时会使用mysql软件的动态链接库文件,如果服务器上mysql版本发生了变化,那么mydumper 也需要重新安装使用mydumper 最好为不同的数据库提供不同的账户,并且导入的时候,尽量要在本地导入,不进行远程操作;即使用 myloader -S 参数这是因为mydumper 与myloader的命令格式非常相似,容易将mydumper 的-u -p -h -P..原创 2022-01-07 16:07:16 · 378 阅读 · 0 评论 -
实例说明optimize table在优化MySQL时很重要
今天在看CU的时候,发现有人问有关optimize来表优化的问题,当年因为这个问题,困扰我很长一段时间,今天有空我把这个问题,用实际数据来展示出来,让大家可以亲眼来看看,optimize table的重要作用,而不是似是而非的估计了。一,原始数据1,数据量mysql> select count(*) as total from ad_visit_history;±--------+| total |±--------+| 1187096 | //总共有118万多条数据±--------转载 2021-05-20 11:32:28 · 592 阅读 · 0 评论 -
mysql锁监控及处理
CPU突然高达800%会是什么原因造成的,32核为例?最可能是锁的问题1、top –Hp 进程可以找到打满CPU的线程是哪个,对应的pid就是performance_schema.threads表中的thread_os_id,也就能找processlist_id,通过 show processlist 找到对应的执行用户窗口,找到相应用户信息,还可以通过performance_schema.events_statements_history 表找到对应执行的语句。2、%Cpu(s): sy u原创 2021-04-02 18:33:26 · 506 阅读 · 1 评论 -
扩展:行锁介绍和row lock wait(行锁等待)的处理案例
a.数据库锁定机制就是为了保证数据的一致性,使得各种共享资源在被并发访问时变得有序。mysql支持三种级别的锁定机制:表级锁定(table-level),行级锁定(row-level),页级锁定(page-level)。1.表级锁定(table-level)表级锁是mysql中锁粒度最大的锁定机制,一次会将整张表锁定,不会出现死锁问题2.行级锁定(row-level)行级锁是锁粒度最小的锁定机制。由于锁粒度最小,所以锁定资源发生的争用也就最小,这样提高了应用程序并发处理的能力同时提高了整个系统的性原创 2021-01-09 18:54:02 · 2360 阅读 · 0 评论 -
扩展:锁优化---全局锁介绍及案例分析
全局锁 Global Read locka. 介绍全局读锁。加锁方法: FTWRL,flush tables with read lock. (flush tables:把当前系统当中已经打开的表关掉)表关掉之后,加上锁,阻塞所有事务的提交commit解锁方法: unlock tables;FTWRL出现场景:mysqldump --master-dataxtrabackup(8.0之前早期版本)等备份时。8.0之后:属于类型: MDL(matedatalock)层面锁影响情况:原创 2021-01-09 18:40:25 · 319 阅读 · 0 评论 -
18:NoSQL--MongoDB基础运维
NoSQL–MongoDB基础运维RDBMS 关系型数据库NoSQL 非关系型数据库NewSQLinsert({id : 1name: zs}){id : 1name: zs}第一章:逻辑结构Mongodb 逻辑结构 MySQL逻辑结构库database 库集合(collection) 表文档(document) 数据行选择之所以称之为选择,肯定是痛苦的! -------原创 2021-01-08 19:41:55 · 283 阅读 · 0 评论 -
扩展:数据库笔试题集合-2
第1章 数据库章节1.1 选择1.1.1 Having 子句的作用是©。A.查询结果的分组条件B.组的筛选条件C.限定返回的行的判断条件D.对结果集进行排序1.1.2 最常用的一种基本数据模型是关系数据模型,它的表示采用(D)A.树 B.网络C.图 D.二维表1.1.3 数据库系统的核心是(B)A.数据模型 B.数据库管理系統C.数据库 D.数据库管理员1.1.4 关系表中每一横行称为(A)A.元组 B.字段C.属性 D.码1.1.5 数据库管理系统维护中,最重要的是(数据维原创 2021-01-08 17:41:17 · 6921 阅读 · 0 评论 -
17:第十一章 MySQL 全面优化
MySQL数据库做过哪些优化?解:我们公司去年10月份,上线了个新业务,站在整体业务角度全面优化方案,期中包含了:硬件 : DELL R730 40C 128G 10台 SAS(8块:4块raid10 2块热备)+SSD 512G日志 网卡 4块网卡 bonding 1操作系统 : C7.6,numa THP 关闭 , XFS ,Swap ,sysctl.conf ,limits.conf nofile , 防火墙 selinux 关闭,deadline,No LVM数据库实例原创 2021-01-06 18:12:31 · 336 阅读 · 0 评论 -
16:MySQL分布式架构(Mycat/DBLE)
MySQL分布式架构(Mycat/DBLE)基础架构介绍略。见架构图。准备环境2.1 环境准备:两台虚拟机 db01 db02每台创建四个mysql实例:3307 3308 3309 33102.2 删除历史环境:pkill mysqldrm -rf /data/330*\mv /etc/my.cnf /etc/my.cnf.bak2.3 创建相关目录初始化数据mkdir /data/33{07…10}/data -pmysqld --initialize-insecu原创 2021-01-05 19:27:05 · 289 阅读 · 0 评论 -
扩展:MySQL中间件之ProxySQL---详述ProxySQL的路由规则
1.关于ProxySQL路由的简述当ProxySQL收到前端app发送的SQL语句后,它需要将这个SQL语句(或者重写后的SQL语句)发送给后端的MySQL Server,然后收到SQL语句的MySQL Server执行查询,并将查询结果返回给ProxySQL,再由ProxySQL将结果返回给客户端(如果设置了查询缓存,则先缓存查询结果)。ProxySQL可以实现多种方式的路由:基于ip/port、username、schema、SQL语句。其中基于SQL语句的路由是按照规则进行匹配的,匹配方式有has原创 2021-01-04 21:31:14 · 525 阅读 · 0 评论 -
15-2:高可用架构的读写分离
介绍ProxySQL是基于MySQL的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离,支持 Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置信息(无需重启 ProxySQL 服务),支持故障切换和SQL的过滤功能。 相关 ProxySQL 的网站:https://www.proxysql.com/https://github.com/sysown/proxysql/wiki基本架构略.安装ProxySQL# 下载proxySQLh.原创 2021-01-04 19:29:52 · 122 阅读 · 0 评论 -
扩展:网上查询大佬的mysql面试题总结
MySQL 面试题MySQL 涉及的内容非常非常非常多,所以面试题也容易写的杂乱。当年,我们记着几个一定要掌握的重心:重点的题目添加了【重点】前缀。索引。锁。事务和隔离级别。因为 MySQL 还会有部分内容和运维相关度比较高,所以本文我们分成两部分【开发】【运维】两部分。对于【开发】部分,我们需要掌握。对于【运维】部分,更多考验开发的知识储备情况,当然能回答出来是比较好的,特别是对于高级开发工程师、架构师等。开发为什么互联网公司一般选择 MySQL 而不是 Oracle?免费、流行、够原创 2021-01-04 11:14:35 · 403 阅读 · 0 评论 -
扩展:MySQL5.7新特性半同步复制之AFTER_SYNC/AFTER_COMMIT的过程分析和总结
MySQL 5.7增强了半同步复制,rpl_semi_sync_master_wait_point增加了AFTER_SYNC的值,由该参数AFTER_SYNC/AFTER_COMMIT两个值选择是否启用增强半同步.当半同步模式为 AFTER_COMMIT时:过程分析如下:1 > session 发出commit请求2 > flush binlog and fsync binlog3 > InnoDB 引擎层 commit4 > 发送binlog到SLAVE,等待slave原创 2021-01-03 18:02:44 · 277 阅读 · 0 评论 -
扩展:MVCC技术如何实现
MVCC 怎么实现的Data & safety 2020-11-15 10:54:40 39 收藏分类专栏: Mysql版权1 从一个实验讲起在说 MVCC(Multi-Version Concurrency Control,多版本并发控制)原理之前,先一起看看一个例子。创建一张测试表并写入测试数据:进行实验:create database likecolumn;use likecolumn;CREATE TABLE t1 (id int(11) NOT NULL AUTO原创 2020-12-31 15:22:43 · 79 阅读 · 1 评论 -
15:MySQL 高可用架构
0. MHA高可用架构介绍及搭建过程0.1 规划:主库:51 node从库:52 node53 node manager0.2 准备环境略。1主2从GTID0.3 配置关键程序软连接ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlogln -s /usr/local/mysql/bin/mysql /usr/bin/mysql0.原创 2020-12-31 14:55:12 · 206 阅读 · 1 评论 -
9.日志管理
1. general log1.1 作用记录从登陆开始,所有的操作日志.默认没有开启.调试时会开启.1.2 配置mysql> show variables like ‘%general%’;±-----------------±-------------------------+| Variable_name | Value |±-----------------±-------------------------+| general_lo原创 2020-12-31 09:31:08 · 124 阅读 · 0 评论 -
扩展:mysql优化器算法介绍:【mysql】关于ICP、MRR、BKA等特性
一、Index Condition Pushdown(ICP)Index Condition Pushdown (ICP)是mysql使用索引从表中检索行数据的一种优化方式,从mysql5.6开始支持,mysql5.6之前,存储引擎会通过遍历索引定位基表中的行,然后返回给Server层,再去为这些数据行进行WHERE后的条件的过滤。mysql 5.6之后支持ICP后,如果WHERE条件可以使用索引,MySQL 会把这部分过滤操作放到存储引擎层,存储引擎通过索引过滤,把满足的行从表中读取出。ICP能减少引擎原创 2020-12-26 17:03:45 · 232 阅读 · 0 评论 -
8.innodb存储引擎(mysql版本8.0.20)-2 InnoDB核心特性 -- 事务
7.1 介绍?Transaction.交易为了保证在数据中,发生交易类操作时,保证"平衡"7.2 事务的特性(Atomicity, Consistency, Isolation, Durability. )A : 原子性事务中的所有查询,要么全成功,要么全失败.C : 一致性事务发生前,中,后.数据保证最终一致性.I : 隔离性并发事务期间,事务之间互不干扰.D : 持久性事务一旦提交.永久生效.7.3 事务的生命周期7.3.1 标准事务控制语句begin;/start tra原创 2020-12-30 20:34:43 · 170 阅读 · 0 评论 -
7.innodb存储引擎(mysql版本8.0.20)-1
介绍相当于Linux中的文件系统.存储引擎就是MySQL中的文件系统.负责和"磁盘"打交道类型支持多种存储引擎.插件式.针对不同表可以使用不同的存储引擎.5.5 版本开始,用户自定义表,默认是InnoDB.show engines;InnoDB存储引擎核心特性事务行锁热备自动故障恢复MVCC聚簇索引AHIchange buffer多缓冲区支持外键彩蛋: 同源产品的存储引擎Mariadb , percona : TokuDBa. 高压缩比b. Inser..原创 2020-12-30 20:31:03 · 339 阅读 · 1 评论 -
6.索引及执行计划
介绍索引相当于一本书中的目录.起到优化查询(where order by group by …)目的.类型Btree : b-tree,b+tree(b+tree,b*tree),Balance-treeRtreeHASHfulltextbtree细分聚簇索引辅助索引: 单列,联合,前缀…唯一索引索引的管理命令4.0 索引建立之前压测:mysqlslap --defaults-file=/etc/my.cnf –concurrency=100 --iter..原创 2020-12-30 20:27:48 · 343 阅读 · 0 评论 -
5.SQL基础-2多表查询和元数据获取
多表查询1.0 准备学习student :学生表sno: 学号sname:学生姓名sage: 学生年龄ssex: 学生性别teacher :教师表tno: 教师编号tname: 教师名字course :课程表cno: 课程编号cname:课程名字tno: 教师编号sc :成绩表sno: 学号cno: 课程编号score:成绩1.1 作用需要获取的数据在多张表中存在.1.2 类型1.2.1 笛卡尔乘积mysql> create .原创 2020-12-30 20:22:38 · 404 阅读 · 1 评论 -
4.SQL基础-1 SQL语句和单表查询
学习准备1.1 什么是SQL结构化查询语言.关系型数据库通用语言.1.2 SQL标准SQL89SQL92SQL99SQL031.3 SQL种类DDL : 数据定义语言DCL : 数据控制语言DML : 数据操作1.4 SQL_MODE例如:日期 : 不能出现 1920-01-00除法 : 除数不能为0在MYSQL存储和应用数据时,能够保证数据时准确有效的.ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DA.原创 2020-12-30 20:21:00 · 444 阅读 · 0 评论 -
3.多实例安装数据库mysql和版本的升级
配置文件管理1.1 配置文件的默认读取位置[root@db01 ~]# mysqld --help --verbose |grep my.cnf/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnfmysqld_safe --defaults-file=/opt/my.cnf &1.2 配置文件结构[root@db01 ~]# cat /etc/my.cnf[mysqld]u.原创 2020-12-30 20:17:59 · 178 阅读 · 0 评论 -
2.MySQL 体系结构及基础管理
体系结构1.1 MySQL C/S工作模型Server : mysqldClient : mysql ,mysqldump ,开发工具(sqlyog navicat workbench),API1.2 MySQL 实例公司: boss + 经理 + 员工 + 办公区实例: mysqld + master thread + 工作线程 + 预分配的内存1.3 mysqld程序结构Server层 : 连接层 SQL层engine层 : FS1.4 SQL语句的执行过程看图.1.5 .原创 2020-12-30 20:16:13 · 107 阅读 · 0 评论 -
1.mysql数据库-8.0.20版本安装
MySQL 分支OraclePerconaMariadbRDSTXMySQL 企业版本选择5.7 : 5.7.28+8.0 : 8.0.18+GA 6-12月版本,GA15-20版本以上的.获取软件https://downloads.mysql.com/archives/community/安装MySQL 8.0.204.1 准备操作系统环境略4.2 上传和解压[root@db01 opt]# tar xf mysql-8.0.20-linux-glibc..原创 2020-12-30 20:13:26 · 335 阅读 · 6 评论 -
扩展:主从复制:xtrabackup部署mysql主从
xtrabackup部署mysql主从A:首先在主从库上都安装xtrabackupB:主库机器要做的事情a、添加防火墙规则(省略)b、添加mysql用户用于复制binlogshell > /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql-3306/mysql.sockmysql > select host,user,password from mysql.user;mysql > grant replication sla原创 2020-12-30 20:10:55 · 172 阅读 · 1 评论 -
14:主从复制-配置主从延时、半同步复制、过滤复制、延时从库、GTID复制、多源复制
1.主从延时1.1 什么是主从延时?主库做了操作,从库好久没跟上.1.2 怎么监控?通过日志的时间戳间隔:Seconds_Behind_Master: 0通过日志量判断?非GTID :(主库show master status–> Position) - (从库 show slave status—> Exec_Master_Log_Pos) = 日志量差异GTID:可以用GTID号码判定.1.3 原因?1.3.0 外部 :网络慢 .主从硬件配置差异大.参数.原创 2020-12-30 20:03:10 · 299 阅读 · 1 评论 -
扩展:使用mysqldump做主从复制
主库开启binlog[root@db01 ~]# mysql -uroot -p123 -e “select @@log_bin;”[root@db01 ~]# mysql -uroot -p123 -e “select @@log_bin_basename;”检查server_id 和 server_uuid[root@db01 ~]# mysql -uroot -p123 -e “select @@server_id;”[root@db01 ~]# mysql -uroot -p123..原创 2020-12-29 20:32:54 · 119 阅读 · 3 评论 -
13:mysql主从复制原理及介绍
2.2 传统复制原理2.2.1 涉及到的线程#主库线程binlog dump thread,binlog投递线程。作用:a. 与从库进行交互b. 监控binlog的变化c. 投递binlog给从库监控:show processlist;#从库线程SLAVE_IO线程 :a. 连接主库b. 和主库的Dump THREAD交互c. 接收和存储主库的binlog日志 ,存储到relaylog(中继日志)中SLAVE_SQL线程a. 回放relaylog中的日志。监控:sho原创 2020-12-29 20:24:35 · 117 阅读 · 0 评论 -
12:mysql主从复制配置方法------利用clone(8.0.17版本之后)
1. 介绍复制2台以上节点,通过binlog实现最终“同步”关系。2. 传统复制 (Classic)2.1 复制前提(搭建过程)a. 准备两个以上数据库实例(主\从).略b. 主库打开二进制日志mysql> select @@log_bin;mysql> select @@log_bin_basename;c. 不同节点的server_id 和 server_uuid不同.mysql> select @@server_id;mysql> select @@ser原创 2020-12-29 20:22:10 · 171 阅读 · 0 评论 -
11:mysql备份恢复-2 克隆备份恢复 clone
1 . Clone Plugin介绍本地克隆(local):启动克隆操作的MySQL服务器实例中的数据,克隆到同服务器或同节点上的一个目录里远程克隆(remote):默认情况下,远程克隆操作会删除接受者(recipient)数据目录中的数据,并将其替换为捐赠者(donor)的克隆数据。您也可以将数据克隆到接受者的其他目录,以避免删除现有数据。(可选)原理(remote)PAGE COPY这里有两个动作开启redo archiving功能,从当前点开始存储新增的redo log,这样从当前原创 2020-12-29 20:11:31 · 460 阅读 · 0 评论 -
10:数据库备份恢复-1(主要是mysqldump和Percona Xtrabackup)
备份恢复1. 作用?处理数据损坏.数据损坏:物理损坏 : 磁盘,核心数据文件被删除或损坏.逻辑损坏 : drop , delete ,truncate ,update数据损坏方法:物理: 主从复制 , 高可用逻辑: 备份,binlog,binlog2sql,延时从库2. 我们的职责a. 设计能备份和恢复的策略b. 备份要定期检查c. 定期的恢复演练d. 数据损坏的恢复(效率,一致性)f. 迁移,升级,主从.3. 备份工具a. 逻辑备份mysqldump (MDP)原创 2020-12-29 20:08:52 · 206 阅读 · 0 评论