摘要: 1.安装 shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql shell> yum install python3 -y vim修改requirements.txt中的PyMySQL==0.9. 阅读全文
posted @ 2023-04-19 16:44 Enzo_Ocean 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 版本选择: MySQL8.0之前版本:比如5.7 使用PXB 2.4版本,percona.com官网可以下载,建议最新版本。 MySQL8.0之后版本:使用PXB 8.0.13以上版本,默认都是innodb引擎,版本之间不兼容,慎重选择 官网下载好rpm包后,直接 yum install -y pe 阅读全文
posted @ 2023-04-19 16:30 Enzo_Ocean 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 对于innodb表备份时,只有在获取表结构,事件,触发器,视图等的元数据时会加全局读锁FTWRL, 获取完就释放锁,备份数据时是使用一致性快照进行备份的,期间不加锁。 1.编译安装 [root@localhost ~]# yum -y install glib2-devel mysql-devel 阅读全文
posted @ 2023-04-19 16:11 Enzo_Ocean 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 物理备份: 备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL中可以用 xtrabackup 工具来进行物理备份。 逻辑备份: 对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。MySQL 中常用的逻辑备份工具 阅读全文
posted @ 2023-04-19 16:05 Enzo_Ocean 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 举例1: mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB; delimiter ;; create procedure idata 阅读全文
posted @ 2023-04-19 15:54 Enzo_Ocean 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 来自mysql45讲第9讲普通索引和唯一索引应该怎么选择 案例:DBA 的同学跟我反馈说,他负责的某个业务的库内存命中率突然从 99% 降低到了 75%,整个系统处于阻塞状态,更新语句全部堵住。而探究其原因后,我发现这个业务有大量插入数据的操作,而他在前一天把其中的某个普通索引改成了唯一索引。 结论 阅读全文
posted @ 2023-04-19 15:51 Enzo_Ocean 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 以下内容来自mysql45讲第23讲mysql是怎么保证数据不丢的。 为了控制 redo log 的写入策略,InnoDB 提供了 innodb_flush_log_at_trx_commit 参数,它有三种可能取值: 设置为 0 的时候,表示每次事务提交时都只是把 redo log 留在 redo 阅读全文
posted @ 2023-04-19 15:48 Enzo_Ocean 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 以下内容来自mysql45讲第23讲mysql是怎么保证数据不丢的 binlog 的写入逻辑比较简单:事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache 写到 binlog 文件中。 一个事务的 binlog 是不能被拆开的,所以比较大的事务会产生 阅读全文
posted @ 2023-04-19 15:44 Enzo_Ocean 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 以下内容来自mysql45讲第12讲-为什么我的mysql会抖一下 正确地告诉 InnoDB 所在主机的 IO 能力,这样 InnoDB 才能知道需要全力刷脏页的时候,可以刷多快。 innodb_io_capacity 这个参数它会告诉 InnoDB 你的磁盘能力。这个值建议设置成磁盘的 IOPS。 阅读全文
posted @ 2023-04-19 15:41 Enzo_Ocean 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 来自45讲 独立表空间迁移,可以在多实例上进行试验(把一张表从另外一个库拷贝过来直接使用,更适用于大表迁移) mysql> create table test_emp like lagou.emp; /*创建一个相同表结构的空表*/ mysql> alter table test_emp disca 阅读全文
posted @ 2023-04-19 15:35 Enzo_Ocean 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 1.查找碎片 SELECT t.TABLE_SCHEMA, t.TABLE_NAME, t.TABLE_ROWS, concat(round(t.DATA_LENGTH / 1024 / 1024, 2), 'M') AS size, t.INDEX_LENGTH, concat(round(t.D 阅读全文
posted @ 2023-04-19 15:23 Enzo_Ocean 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 若lower_case_table_names=0可能导致表名既有大写又有小写, 想将lower_case_table_names设为1的话 需要先将大写的表和视图名称改为小写的。 1.查找出名称为大写的表和视图 SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE 阅读全文
posted @ 2023-04-19 15:20 Enzo_Ocean 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 1.查询所有表的字符集/校对规则 select table_schema,table_name,TABLE_COLLATION from information_schema.tables where table_schema not in ('sys','mysql','information_s 阅读全文
posted @ 2023-04-19 15:13 Enzo_Ocean 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1.查看整个实例占用空间大小: SELECT concat( round( sum( data_length / 1024 / 1024 ), 2 ), 'MB' ) AS data_length_MB, concat( round( sum( index_length / 1024 / 1024 阅读全文
posted @ 2023-04-19 14:58 Enzo_Ocean 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 例如: 查找大于60秒的长事务并显示持续时间(idle_time): select t.*,to_seconds(now())-to_seconds(t.trx_started) idle_time from information_schema.innodb_trx t where TIME_TO 阅读全文
posted @ 2023-04-19 11:57 Enzo_Ocean 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 元数据锁是server层的锁,表级锁,每执行一条DML、DDL语句时都会申请MDL锁,DML操作需要MDL读锁,DDL操作需要MDL写锁(MDL加锁过程是系统自动控制,无法直接干预,读读共享,读写互斥,写写互斥),申请MDL锁的操作会形成一个队列,队列中写锁获取优先级高于读锁。一旦出现写锁等待,不但 阅读全文
posted @ 2023-04-19 11:31 Enzo_Ocean 阅读(29) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示