随笔分类 - MySQL
摘要:CheckPoint的作用 缩短数据库的恢复时间 数据库宕机恢复依赖redo log。当恢复时不需要重做所有日志,因为CheckPoint之前的页都已经刷盘,只需要对CheckPoint之后的日志进行恢复,从而缩短恢复时间 缓冲池不够用时,将脏页刷新到磁盘 当缓冲池不够时,LRU算法会溢出最近最少使
阅读全文
摘要:缓冲池介绍 每次读写数据都是通过Buffer Pool; 当Buffer Pool中没有用户所需要的数据时,才去硬盘中获取; 通过innodb_buffer_pool_size进行设置总容量; 该值设置的越大越好; innodb_buffer_pool_instances 设置为多少个缓冲池; 总容
阅读全文
摘要:页的结构 File Header 记录 ROW_FORMAT REDUDENT:兼容老版本的InnoDB,MySQL 4.1版本之前 COMPACT:MySQL 5.6 版本的默认格式 COMPRESSED:支持压缩 DYNAMIC:大对象记录优化,MySQL 5.7 版本默认格式 COMPACT
阅读全文
摘要:在InnoDB存储引擎中,Row都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table),或者叫聚集索引(clustered index) 每张表必须有一个主键 根据主键的值构建一个B+树 这颗B+树的叶子节点存放所有记录 非叶子节点存放主键和指针(若
阅读全文
摘要:表空间内部组织结构 表空间 内部由多个段对象(Segment)组成 每个段(Segment)由区(Extent)组成 每个区(Extent)由页(Page)组成 每个页(Page)里面保存数据(或者叫记录 Row) 段对用户来说是透明的 段也是一个逻辑概念 目前为止在information_sche
阅读全文
摘要:InnoDB的特点 Fully ACID (InnoDB默认的Repeat Read隔离级别就支持) Row-level Locking(支持行锁) Multi-version concurrency control(MVCC)(支持多版本并发控制) Foreign key support(支持外键
阅读全文
摘要:MySQL的IO使用情况 iotop iotop -u mysql # -u 表示监控哪个user的进程,所以前提是你的mysql服务是用mysql用户启动的 该命令只能看到MySQL的线程ID(Thread ID) performance_schema.threads root@mysqldb 1
阅读全文
摘要:iostat 安装 apt-get install sysstat 使用 iostat -xm 3 # x表示显示扩展统计信息,m表示以兆为单位显示,3表示每隔3秒显示 # 输出如下: avg-cpu: %user %nice %system %iowait %steal %idle 0.58 0.
阅读全文
摘要:Explain explain是解释SQL语句的执行计划,即显示该SQL语句怎么执行的 使用 explain 的时候,也可以使用 desc 5.6 版本支持DML语句进行explain解释 5.6 版本开始支持 JSON格式 的输出 EXPLAIN查看的是执行计划,做SQL解析,不会去真的执行;且到
阅读全文
摘要:索引 索引的定义 索引是对记录按照一个或者多个字段进行排序的一种方式。对表中的某个字段建立索引会创建另一种数据结构,其中保存着字段的值,每个值又指向与它相关的记录。这种索引的数据结构是经过排序的,因而可以对其执行二分查找。且性能较高。 二叉树(Binary Tree) 二叉树的定义 每个节点至多只有
阅读全文
摘要:存储过程介绍 存储在数据库端的一组SQL语句集; 用户可以通过存储过程名和传参多次调用的程序模块; 存储过程的特点: 使用灵活,可以使用流控制语句、自定义变量等完成复杂的业务逻辑; 提高数据安全性,屏蔽应用程序直接对表的操作,易于进行审计; 减少网络传输; 提高代码维护的复杂度,实际使用需要结合业务
阅读全文
摘要:[client] socket = /data/mysql/mysql.sock [mysql] prompt = "\u@mysqldb \R:\m:\s [\d]> " no-auto-rehash [mysqldump] single-transaction [mysqld] #basic s
阅读全文
摘要:查询没有主键的表 SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME NOT IN (SELECT DISTINCT (TABLE_NAME) FROM information_schema.
阅读全文
摘要:一. 创建视图 -- -- 创建视图 -- root@mysqldb 09:28: [test]> create view view_t4 as select * from t4; Query OK, 0 rows affected (0.00 sec) -- 也可以对select结果增加条件进行过
阅读全文
摘要:一. 介绍 MHA是一套MySQL高可用管理软件,除了检测Master宕机后,提升候选Slave为New Master之外(漂虚拟IP),还会自动让其他Slave与New Master建立复制关系。MHA Manager可以单独部署在一台独立的机器上,并管理多个master-slave集群。 二.
阅读全文
摘要:[client] user = root password = [mysql] prompt = "\u@mysqldb \R:\m:\s [\d]> " no-auto-rehash [mysqldump] single-transaction [mysqld] #basic settings#
阅读全文
摘要:[client] socket = /data/mysql/mysql.sock [mysql] prompt = "\u@mysqldb \R:\m:\s [\d]> " no-auto-rehash [mysqldump] single-transaction [mysqld] #basic s
阅读全文
摘要:一. GTID的介绍 Global Transaction Identifier – 全局事物ID GTID = Server_UUID + Transaction_ID Server_UUID 是全局唯一的 Transaction_ID 是自增的 GTID 的作用是替代 Filename + Po
阅读全文
摘要:一. loss less semi-sync replication 之前测试的复制,都是异步复制,Master并不关心数据是否被Slave节点所获得,所以复制效率很高,但是数据有可能会丢失。从MySQL5.5开始,MySQL推出了semi-sync replication(半同步复制) 至少有一个
阅读全文