07 2020 档案

摘要:5.7中当出现数据大量切斜的时候执行计划依然能够得到正确的执行计划。比如性别列索引,其中30行,29行为男性,1行为女性,下面是执行计划示例: mysql> set eq_range_index_dive_limit=100; Query OK, 0 rows affected (0.00 sec) 阅读全文
posted @ 2020-07-30 23:39 Cetus-Y 阅读(698) 评论(0) 推荐(0) 编辑
摘要:背景 InnoDB作为事务性引擎,使用write-ahead logging(WAL)机制保证ACID中的Atomicity和Durability,使用undo机制保证ACID中的Consistency和Isolation。 按照WAL和undo的机制,形成以下两个原则: 数据块的更改需要先记录re 阅读全文
posted @ 2020-07-15 09:16 Cetus-Y 阅读(174) 评论(0) 推荐(0) 编辑
摘要:dd创造一片100M 的文件 dd if=/dev/zero of=/tmp/100M bs=1024k count=100 将创建的文件用 losetup 虚拟成块设备 /dev/loop3 losetup --show --find /tmp/100M 将块设备 /dev/loop3 映射成带延 阅读全文
posted @ 2020-07-14 21:59 Cetus-Y 阅读(390) 评论(0) 推荐(0) 编辑
摘要:背景 Innodb使用undo log来实现MVCC,这意味着如果一个很老的事务长时间不提交,那么新产生的undo log都无法被及时清理掉。在MySQL 5.5及之前版本中,undo log是存储在ibdata中。从5.6开始可以使用独立的undo log表空间来存储undo。但是直到5.6,一旦 阅读全文
posted @ 2020-07-14 09:31 Cetus-Y 阅读(555) 评论(0) 推荐(0) 编辑
摘要:--source include/master-slave.inc --source include/have_binlog_format_row.inc connection slave; set global slave_rows_search_algorithms='TABLE_SCAN'; 阅读全文
posted @ 2020-07-13 11:31 Cetus-Y 阅读(688) 评论(0) 推荐(0) 编辑
摘要:提要 相对于纳秒级的内存访问延时,普通的机械盘达到了毫秒级的随机访问延时,对于OLTP应用来说,物理IO绝对是目前数据库管理系统的最大性能杀手,所以增加内存的大小,提高IO的命中率无疑可以作为一种降低时延的常用优化手段。 针对使用InnoDB引擎的MySQL实例来说,增加buffer pool的大小 阅读全文
posted @ 2020-07-08 21:27 Cetus-Y 阅读(196) 评论(0) 推荐(0) 编辑
摘要:命令的输出 MariaDB> analyze select * from tbl1 where key1 between 10 and 200 and col1 like 'foo%'\G *************************** 1\. row ****** 阅读全文
posted @ 2020-07-08 21:22 Cetus-Y 阅读(338) 评论(0) 推荐(0) 编辑
摘要:GTID 资料 MySQL 5.6 引入了global transaction identifiers (GTIDs,全局事务ID)的特性,这一特性是用来解决主从复制(replication)场景下的一些问题,GTID 只存在于 binlog 中,数据库中是没有的。 要了解 GTID 的话,官方文档 阅读全文
posted @ 2020-07-08 21:17 Cetus-Y 阅读(207) 评论(0) 推荐(0) 编辑
摘要:背景: Innodb引擎使用B_tree结构保存表数据,这样就需要一个唯一键表示每一行记录(比如二级索引记录引用)。 Innodb表定义中处理主键的逻辑是: 1.如果表定义了主键,就使用主键唯一定位一条记录 2.如果没有定义主键,Innodb就生成一个全局唯一的rowid来定位一条记录 auto_i 阅读全文
posted @ 2020-07-08 21:12 Cetus-Y 阅读(117) 评论(0) 推荐(0) 编辑
摘要:MariaDB 10.0.8增加了一种新的执行计划——Extended Keys。 它充分利用了InnoDB的隐藏列来做执行计划,因为我们都知道InnoDB的索引组织表会把主键放在最末尾,所以实际上每个索引最后都包含了主键。 打开和关闭这个优化器选项的命令如下: Enable: set optimi 阅读全文
posted @ 2020-07-07 22:57 Cetus-Y 阅读(439) 评论(0) 推荐(0) 编辑
摘要:唯一索引额外功能 为了便于说明,我们创建一个简单的表t,如下: 我在这个表的字段a上创建了唯一索引,字段b上面没有索引,表里初始化两行数据,分别是(1, 1)和(2, 1)。假设我现在要执行一个新的插入语句: 就会报错: 如果我现在要给字段b上加上一个唯一索引,可以这么执行: 同样会报错: 也就是说 阅读全文
posted @ 2020-07-07 20:52 Cetus-Y 阅读(705) 评论(0) 推荐(0) 编辑
摘要:背景 MySQL现行版本中存在一个count(distinct)语句返回结果错误的bug,表现为,实际结果存在值,但是用count(distinct)统计后返回的是0。 drop table if exists tb; set tmp_table_size=1024; create table tb 阅读全文
posted @ 2020-07-07 20:38 Cetus-Y 阅读(394) 评论(0) 推荐(0) 编辑
摘要:背景 innodb_flush_log_at_trx_commit 这个参数可以说是InnoDB里面最重要的参数之一,它控制了重做日志(redo log)的写盘和落盘策略。 具体的参数意义见手册 简单说来,可选值的安全性从0->2->1递增,分别对应于mysqld 进程crash可能丢失 -> OS 阅读全文
posted @ 2020-07-07 20:35 Cetus-Y 阅读(227) 评论(0) 推荐(0) 编辑
摘要:背景 最近发布的MariaDB 10.1 Alpha版本,提交了一个改动,放宽了InnoDB Page<=16K的限制,将上限提高到64K。 从MDEV-6075需求文档中可以看出,目前只支持COMPACT的结构,DYNAMIC结构能否支持还在研究,COMPRESSED结构则确定无法支持。 业务应用 阅读全文
posted @ 2020-07-07 20:33 Cetus-Y 阅读(394) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示