MySQL8.0:The General Query Log
常规查询日志是关于 mysqld 正在做什么的常规记录。当客户端连接或断开连接时,服务器将信息写入该日志,并记录从客户端接收的每个SQL语句。当您怀疑客户端出现错误并想要确切地知道客户端发送给 mysqld 的内容时,常规查询日志可能非常有用。 显示客户机何时连接的每一行还包括使用 connection_type 来指示用于建立连接的协议。connection_type 是TCP/IP(不使用
Oracle19c:一个很少有人知道,如今可以不用再知道的功能——修改用户名
19C以前的修改方法 version < 11.2.0.2 修改数据字典user$ UPDATE USER$ SET NAME = 'oaipo_sa' WHERE USER# = 'oa_ipo'; --生产库更改数据字典请谨慎操作 COMMIT; 手工生成检查点,使 update 操作写入数据文件 alter system chec
MySQL8:新特性——资源管理
MySQL 是单进程多线程的程序,MySQL 线程包括后台线程(Master Thread、IO Thread、Purge Thread 等),以及用户线程。在 8.0 之前,所有线程的优先级都是一样的,并且所有的线程的资源都是共享的。但是在MySQL8.0 之后,由于 Resource Group 特性的引入,我们可以来通过资源组的方式修改线程的优先级以及所能使用的资源,可以指定不同的线程使用特
MySQL:刷新机制
MySQL这种关系型数据库,讲究日志先行策略,就是一条DML语句进入数据库之后,先写日志,再写数据文件 redo logredo log 又称重做日志文件,用来记录事务操作的变化,记录数据修改之后的值,不管事务是否被提交,都会被记录下来 在实例和介质失败时,如数据库掉电,这时候InnoDB存储引擎会使用重做日志,恢复到掉电前的时刻 默认情况至少有两个redo log文件,在磁盘用ib_log
MySQL:数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 关键字INT是I
MySQL:内存结构
SGA innodb_buffer_boolinnodb 高速缓冲 data 和索引,简称 IBP,这个是 Innodb 引擎中影响性能最大的参数。用来缓存Innodb表的数据、索引、插入缓冲、数据字典等信息。建议将 IBP 设置的大一些,单实例下,建议设置为可用 RAM 的 50%~80%。 innodb 不依赖 OS,而是自己缓存了所有数据,包括索引数据、行数据等等,这个和 myisa
MySQL:show index
语法show index from your_tablename WHERE condition; 示例mysql> show index from baymax.resource_database\G; *************************** 1. row *************************** Table: resource_d
MySQL:事务
认识事务 A(Atomicity)—原子性:整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,才算整个事务成功。事务中任何一个 SQL 语句执行失败,已经执行成功的 SQL 语句也必须回滚,退回到执行事务前的状态。C(Consistency)—一致性:将数据库从一种状态转变为下一种一致的状态。在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。I(Isolati
MySQL:锁
lock & latch lock latch 对象 事务 线程 保护 数据库内容 内存数据结构 持续时间 整个事务过程 临界资源 模式 行锁、表锁、意向锁 读写锁、互斥锁 死锁 通过 wait-for graph、time out 等机制进行死锁检测与处理 无死锁检测与处理机制。仅通过应用程序加
MySQL:optimizer_switch
查看mysql> SELECT @@optimizer_switch\G; *************************** 1. row *************************** @@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merg
MySQL:索引介绍
索引概述 B+ 树索引全文索引哈希索引 数据结构与算法二分查找法折半查找法 二叉查找树和平衡二叉树 B+ 树插入 插入 28插入 70根据中间的值 60 来拆分叶子节点插入 95 删除 删除 70删除 25将 25 的右兄弟节点的 28 跟新到 Page Index 中删除 60Fill Factor 小于 50%,需要做合并操作 B+ 树索引查找某一键值的行记录时最多只需
MySQL:表简介
索引组织表主键 判断表中是否有非空的 Unique 索引,有的话选择第一个定义的非空 Unique 索引作为主键没有的话自动创建 6 字节大小的指针。 _rowid 可以显示表的主键,仅限于单列主键 InnoDB 逻辑存储结构区每个区的大小都是 1 MB。创建表初始先用 32 个页大小的碎片页来存放数据,在使用完这些页之后才是 64 个连续的页的申请。 页 数据页undo 页系统页事务数
MySQL:MySQL文件结构
参数文件告诉 MySQL 实例启动时在哪里可以找到数据库文件,并且制定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。 查看 SHOW VARIABLES LIKE '%%'; SELECT * FROM GLOBAL_VARIABLES 日志文件用来记录 MySQL 实例对某种条件作出响应时写入的文件。 错误日志 (error l
MySQL:5.6升级到5.7的sql_mode
异常GROUP BY 语句报错 Error Code: 1055. Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘×××’ which is not functionally dependent on columns in GROUP BY clause; thi
MySQL:5.7升级8.0——升级检查
安装 下载检查工具https://dev.mysql.com/downloads/shell/ 选择所需要的系统版本 检查工具安装 rpm -ivh mysql-shell-8.0.33-1.el7.x86_64.rpm 检查mysqlsh版本,确定指向无误 mysqlsh --version 升级检查进行升级检查,使用如下命令 mysqlsh -- util chec
MySQL:Innodb 关键特性
插入缓冲 (Insert Buffer)Insert BufferInsert Buffer 和数据页一样,是物理页的一个组成部分。 对于非聚集索引的插入或更新操作,不是每一次直接插入到索引页中,而是先判断插入的非聚集索引页是否在缓冲池中,若在,则直接插入;若不在,则先放入到一个Insert Buffer对象中,。然后再以一定的频率和情况进行Insert Buffer和辅助索引叶子节点的 mer
MySQL:xtrabackup 恢复
备份目录解析 mysql/, performance_schema/, sys/ 下存放的是数据库文件。backup-my.cnf,备份命令用到的配置选项信息;xtrabackup_binlog_info,mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置;xtrabackup_checkpoints,备份类型(如完全或增量)、备份状态(如是否已经为prepa
MySQL:Xtrabackup 备份
备份文件介绍 backup-my.cnf:包含了my.cnf中备份时需要的信息。ib_buffer_pool:buffer pool 中的热数据,当设置 innodb_buffer_pool_dump_at_shutdown=1 ,在关闭 MySQL 时,会把内存中的热数据保存在磁盘里 ib_buffer_pool 文件中,位于数据目录下。ibdata1:备份的共享表空间文件;xtrabac
MySQL:慢SQL(slow_log)
mysql.slow_log 表是 csv 表,没有索引。 CREATE TABLE `slow_log` ( `start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `user_host` mediumtext NOT NULL, `quer
MySQL:xtrabackup简介
xtrabackup是一种物理备份工具,通过协议连接到mysql服务端,然后读取并复制innodb底层的”数据块”,完成所谓的”物理备份”。 支持对innodb进行热备、增量备份、差量备份。支持对myisam进行温备,因为在备份myisam表时,会对myisam表添加读锁,而且不能对myisam表进行增量备份,每次备份myisam数据都是全量,即使名义上是增量,但是实际上仍然是全量。优点