检查是否存在/etc/my.cnf 和mysql用户
yum install perl libaio net-tools perl-Module-Install.noarch
rpm -Uvh *.
【mysql】 【yum】 【配置】 【rpm】 【mysql5.6】 【centos7】 【perl】 【install】 …
1. 概述
前面很多大侠都分享过MySQL的InnoDB存储引擎将数据刷新的各种情况。我们这篇文章从InnoDB往下,看看数据从InnoDB的内存到真正写到存储设备的介质上到底有哪些缓冲在起作用。
我们通过下图看一下相关的缓冲:
图 1 innodb all buffers
从上图中,我们可以看到,数据InnoDB到磁盘需要经过
mysql 5.6 更高精度的时间
mysql从5.6开始,时间有了更高的精度:秒支持到小数点后6位。
[DB152](root@localhost) [test]> SELECT now(6), sysdate(6), CURRENT_TIMESTAMP(6); +----------------------------+----------------------------+----------------------------+ | now(6) | sysdate(6) | CURRENT_TIMESTAMP(6) | +----------------------------+----------------------------+----------------------------+ | 2014-01-22 13:58:48.141652 | 2014-01-22 13:58:48.141652 | 2014-01-22 13:58:48.141652 | +----------------------------+----------------------------+----------------------------+ |
不加参数的话,不显示小数点后面的部分,这样就可以和旧版本的mysql兼容,另外也可以自己指定精确到小数点后几位:
[DB152](root@localhost) [test]> SELECT now(3), … |
导读:本文是测试online DDL对表的二级索引的增删的影响。测试目的有以下几点:
(1):online DDL和旧机制的DDL 在二级索引变更方面的效率如何
(2):onlineDDL是否支持DML,查询并发
导读:
本文是onlineDDL 对Innodb全文索引的变更测试的。MySQL5.6手册中有这样的解释: (除非用户提供FTS_DOC_ID列,否则创建第一个全文索引的过程包含表的复制。
导读:
本文是MySQL5.6 OnLine DDL 对外键变更操作的测试,测试目的: foreign_key_checks系统变量开启对增删外键约束的影响。
mysql> show variables like ‘%foreign_key_check%’;
导读:MySQL5.6 OnLine DDL 对列变更操作的测试,测试目的:对于列不同操作,Online DDL是否需要拷贝表以及允许DML,SELECT 并发。
下面测试使用测试案例 test_column,big_table,表定义是一致,结果集大小不同。
mysql> show create table test_column \G
mysql5.6 ignore-db-dir
通常我们都建议不要把mysql的datadir设置为文件系统的根目录,否则,
show database的时候,会发现一个 奇怪的db: #mysql50#lost+found
mysql [localhost] {msandbox} (test) > SHOW DATABASES; +---------------------+ | DATABASE | +---------------------+ | information_schema | | #mysql50#lost+found | | mysql | | performance_schema | | test | +---------------------+ 5 ROWS IN SET (0.00 sec) mysql [localhost] {msandbox} (test) > USE \#mysql50\#lost+found DATABASE changed mysql [localhost] {msandbox} (#mysql50#lost+found) > mysql [localhost] {msandbox} (#mysql50#lost+found) > SHOW TABLES; Empty SET (0.00 sec) mysql [localhost] {msandbox} (#mysql50#lost+found) > DROP DATABASE \#mysql50\#lost+found; ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version … |
mysql5.6主从复制第五部分[如何在从服务器中跳过一条语句/事务]
写这篇笔记的时候,mysql已经从5.6.10发展到了5.6.12
SQL_SLAVE_SKIP_COUNTER 对于GTID没用 。
准备测试环境,按照 http://www.zhaokunyao.com/archives/4131 配置主从。
master port 5612
slave port 5613
然后把slave设置成落后于master 600秒, 便于测试:
mysql [localhost] {msandbox} (test) > CHANGE master TO MASTER_DELAY=600; ERROR 1198 (HY000): This operation cannot be performed WITH a running slave; run STOP SLAVE FIRST mysql [localhost] {msandbox} (test) > mysql [localhost] {msandbox} (test) > stop slave; Query OK, 0 ROWS affected (0.05 sec) mysql [localhost] {msandbox} (test) > CHANGE master TO MASTER_DELAY=600; Query OK, 0 ROWS affected (0.27 sec) mysql [localhost] {msandbox} (test) > START slave; Query OK, 0 ROWS affected, 1 warning … |
Mysql innodb如何 统计table statistics
Table statistics 包含两个方面:
1) table stat 比如表内一共有多少条记录(n_rows)。
此类信息保存在mysql.innodb_table_stats表中。
2) index stat 比如index中包含多少个page, 多少个leaf page,共有多少条完全不同的索引
此信息保存在mysql.innodb_index_stats表中。
在innodb中,一切都是基于index的,table stat 中n_rows的计算也是基于index的。
下面就分析一下innodb是如何对index进行统计的。
哎,还是先简单介绍一下index的结构—B+ tree
B+tree的结构如下图:
这张图是从 Wikipedia copy过来的,不必太执着于它。
Index在硬盘文件中的最基本保存单位是page(默认16K一页),这些page在一起组成了B+ tree。
表中的每一个index,对应一个B+tree。
…