摘要:
Index Condition Pushdown(ICP)是针对mysql使用索引从表中检索行数据时的一种优化方法。 在没有ICP特性之前,存储引擎根据索引去基表查找并将数据返回给mysql server,mysql server再根据where条件进行数据过滤。 有了ICP之后,在取出索引的同时, 阅读全文
随笔分类 - MySQL
Myloader参数说明
2017-11-01 10:54 by abce, 1212 阅读, 收藏, 编辑
摘要:
-d, --directory 备份文件的目录 -q, --queries-per-transaction 每次事务执行的查询数量,默认是1000 -o, --overwrite-tables 如果要恢复的表存在,则先drop掉该表,使用该参数,需要备份时候要备份表结构 -B, --database ... 阅读全文
Mydumper介绍
2017-11-01 10:49 by abce, 1540 阅读, 收藏, 编辑
摘要:
Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。开发人员主要来自MySQL,Facebook,SkySQL公司。目前已经在一些线上使用了Mydumper。 一、Mydumper主要特性: -执行并行(速度快)、性能提升 -易于管理 -一致性:在所有的threads之 阅读全文
MySQL的reset slave与reset slave all
2017-10-31 19:26 by abce, 9873 阅读, 收藏, 编辑
摘要:
reset slave是各版本Mysql都有的功能,可以让slave忘记自己在master binary log中的复制位置。 reset slave命令主要完成以下工作内容: -删除master.info和relay-log.info文件 -删除所有的relay log(包括还没有应用完的日志) 阅读全文
MySQL复制中slave延迟监控
2017-10-31 12:41 by abce, 512 阅读, 收藏, 编辑
摘要:
通常是根据 Seconds_Behind_Master 的值来判断slave的延迟。这么做大部分情况下尚可接受,但并不够准确,而应该考虑更多因素。 查看slave的状态 从查询结果可以看出,slave落后master的时间是30510秒(即Seconds_Behind_Master的值) 查看一下s 阅读全文
MySQL -- 异步I/O
2017-10-09 09:54 by abce, 2573 阅读, 收藏, 编辑
摘要:
linux上,innodb使用异步IO子系统(native AIO)来对数据文件页进行预读和写请求。行为受到参数innodb_use_native_aio控制。默认是开启的,且只是适用于linux平台,需要libaio库。在其他的类unix平台上,innodb使用的是同步I/O。 由于历史的原因,在 阅读全文
MySQL -- Innodb的关闭
2017-10-04 12:15 by abce, 888 阅读, 收藏, 编辑
摘要:
参数innodb_fast_shutdown控制着innodb的关闭模式,有三种取值: 0: innodb执行slow shutdown,在关闭之前要完成一次full purge和change buffer的perge,并且将所有的脏页刷新回磁盘。可能会需要几分钟或几个小时(如果buffer中有大量 阅读全文
MySQL -- Innodb中的change buffer
2017-10-04 10:30 by abce, 3904 阅读, 收藏, 编辑
摘要:
change buffer是一种特殊的数据结构,当要修改的辅助索引页不在buffer pool中时,用来cache对辅助索引页的修改。对辅助索引页的操作可能是insert、update和delete操作。等到相关的索引页被读入buffer pool中后,才会使用change buffer中的内容对辅 阅读全文
MySQL -- Innodb是如何处理自增列的
2017-09-26 15:45 by abce, 1481 阅读, 收藏, 编辑
摘要:
对于那些向带有自增列的表中插入行的语句,Innodb提供一种可配置的锁定机制,这种锁定机制可以显著提高SQL语句的可伸缩性和性能。 Innodb中为了使用自增机制,自增列必须是索引的部份,从而可以使用等价查询。典型的做法是将自增列放在表的索引的第一个位置。 Innodb自增锁模式 自增锁模式是在启动 阅读全文
MySQL -- 外键创建失败
2017-09-25 11:00 by abce, 563 阅读, 收藏, 编辑
摘要:
使用show engine innodb status\G 查看数据库状态的时候,发现以下报错信息: 可以看出,创建外键索引失败,在父表和子表之间约束不匹配。但是只能看出被参照的表是s_app_res,对应的字段是id。但是没有显示参照表的名字,只是显示参照表中的列名。 使用以下语句将参照表的信息找 阅读全文
xtrabackup-解压备份文件报错sh: qpress: command not found
2017-09-21 14:13 by abce, 4579 阅读, 收藏, 编辑
摘要:
原因是decompress解压缺少工具qpress解压办法: 安装好qpress后就可以正常解压了! 阅读全文
xtrabackup-增量备份
2017-09-21 13:42 by abce, 640 阅读, 收藏, 编辑
摘要:
增量备份之所以能工作是因为每个innodb的page都包含日志序列号(LSN)。LSN是整个数据库的版本号。 增量备份会拷贝那些LSN比备份开始时新的页。有两种算法用来计算查找这些页:第一种,支持所有版本类型,从数据页中直接读取页的LSN号;第二种,只是支持percona server,可以跟踪所有 阅读全文
启动mysql报错 -- ERROR! The server quit without updating PID file
2017-09-21 10:57 by abce, 3980 阅读, 收藏, 编辑
摘要:
开发说某个测试环境的mysql,无法重启了,报以下错误提示: 看了一下错误日志,居然没有任何提示。问他重启之前做了什么操作没有,回答说只是开启了二进制,然后尝试重启就报错了。 查看了一下my.cnf文件,的确是加了一个参数: 但是发现没有设置server-id,于是在配置文件中设置一个server- 阅读全文
xtrabackup-工作原理
2017-09-19 11:22 by abce, 1121 阅读, 收藏, 编辑
摘要:
数据备份 xtrabackup是基于innodb的crash恢复功能之上的。它会拷贝innodb数据文件(这会导致数据不一致的),然后对文件执行crash恢复使其一致。 因为innodb维护了redo日志,即事务日志。redo日志包含对innodb数据修改的每一个记录。当innodb启动,会探测数据 阅读全文
MySQL -- 全文检索(查询扩展检索)
2017-09-14 11:02 by abce, 743 阅读, 收藏, 编辑
摘要:
通常用在查询的关键词太短,用户需要隐含知识进行扩展。例如,查单词database时,用户可能还希望不仅仅包含database的文档,可能还指包含mysql、oracle、db2等单词。这时就需要查询扩展。 使用"with query expansion"或"in natural language m 阅读全文
MySQL -- 全文检索(布尔全文检索)
2017-09-14 10:42 by abce, 1023 阅读, 收藏, 编辑
摘要:
modifier的值为in boolean mode的时候,可以使用布尔全文检索。在布尔全文检索中,有些字符在检索字符串的开头或结尾会有特殊含义。在下面的示例中,+和-操作符表明在匹配的时候,单词必须存在和不存在。所以是检索含有"MySQL"但是不含有"YourSQL"的行。 布尔全文检索的操作符: 阅读全文
MySQL -- 全文检索
2017-09-12 16:33 by abce, 524 阅读, 收藏, 编辑
摘要:
mysql支持全文索引和全文检索--全文索引的索引类型是fulltext--全文索引只能用于innodb表和myisam表,对应的列类型只是支持char、varchar、text--mysql5.7.6中,提供了一个内嵌的全文ngram 解释器,支持中文、日语和韩语--全文索引可以在create t 阅读全文
MySQL -- 全文检索(自然语言全文检索)
2017-09-12 16:33 by abce, 1447 阅读, 收藏, 编辑
摘要:
自然语言全文本检索缺省或者modifier被设置为in natural language mode,都是进行自然语言检索。对于表中的每一行,match()都会返回一个关联值。 缺省情况下,检索是大小写不敏感的。如果要想进行大小写敏感的检索,对于索引的列要进行二进制collation。比如字符集类型为 阅读全文
MySQL -- innodb中cardinality是如何统计的
2017-09-11 16:41 by abce, 1316 阅读, 收藏, 编辑
摘要:
cardinality是放在mysql存储引擎层进行的。采用的是采样取值。在innodb存储引擎中,cardinality统计信息的更新发生在两个操作中:insert和update 更新策略为:-表中1/16的数据发生过变化-stat_modified_counter>2000 000 000 (s 阅读全文
MySQL -- Fast Index Creation
2017-09-11 15:02 by abce, 1522 阅读, 收藏, 编辑
摘要:
1.fast index creation简介 MySQL5.5之后,对innodb表创建或删除辅助索引的效率提升了很多,即增加了新的功能fast index creation。因为MySQL5.5之后,创建和删除辅助索引不在需要拷贝整个表的数据。 在5.5之前,在一个已经存在数据的表上增加或者删除 阅读全文