MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图:
这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引(Primary key)示意。
【算法】 【mysql】 【innodb】 【索引】 【存储】 【myisam】 点击查看原文>
此前听说过某公司把xfs都替换成了ext4,感觉有些诧异,才有了本次测试。此次测试本意是想对比下xfs和ext4的差异,看看xfs是否还一如既往的靠谱。在测试的过程中,我还顺带测试了下MySQL 5.7.7和Percona-5.6.23的对比。
最终的建议写在前面:
1、可以继续放心大胆的采用xfs文件系统;
2、使用xfs文件系统时,无需刻意加一些优化参数,默认的(defaults,noatime,nodiratime,nobarrier)就够了;
3、可以继续优先选择Percona分支版本,除了thread
pool,它还有其他很多优秀的特性(MySQL官方暂无计划把thread pool功能移植到社区版);
4、 MySQL 5.7版本同样非常值得期待,但更希望加入Percona/MariaDB已经采用的、成熟的优秀补丁(thread
pool、slowlog、锁/mutex拆分等);
…
MySQL在以下几种情况会创建临时表:
1、UNION查询; 2、用到TEMPTABLE算法或者是UNION查询中的视图; 3、ORDER BY和GROUP BY的子句不一样时; 4、表连接中,ORDER BY的列不是驱动表中的; 5、DISTINCT查询并且加上ORDER BY时; 6、SQL中用到SQL_SMALL_RESULT选项时; 7、FROM中的子查询; 8、子查询或者semi-join时创建的表;
EXPLAIN 查看执行计划结果的 Extra 列中,如果包含 Using Temporary 就表示会用到临时表。
当然了,如果临时表中需要存储的数据量超过了上限( tmp-table-size 或 …
[获取更多]本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化。本节开始讲5.7版本中的新特性。
1、安全性
a. 用户表 mysql.user 的 plugin字段不允许为空, 默认值是 mysql_native_password,而不是
mysql_old_password,不再支持旧密码格式;
b. 增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式;
c. 使用 mysql_install_db 初始化时,默认会自动生成随机密码,并且不创建除 root@localhost
外的其他账号,也不创建 test 库;
【新特性实践】
执行 mysql_install_db 进行新实例初始化:
[yejr@imysql.com]# ./bin/mysql_install_db --user=mysql --datadir=/data/mysql/ 2015-06-24 13:55:29 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 2015-06-24 13:55:38 [ERROR] Child process: …[获取更多]
在MySQL运维过程中,都会碰到这样一个问题:
大部分MySQL都是以各种集群的方式存在的,其类型有:
1) Master–Slave
2)Master–Master
3)Master–SlaveS
4)Master–SLave–SLave(S)
我们在管理过程中要自动化的运维MySQL集群,就要很明确得知道整个集群的拓扑结构,这时候,获取集群真正的Master非常重要,如果Master节点获取不正确,整个集群的拓扑结构就是不正确的。在获取Master节点上,有几个方案:
1. 通过命令 show Slave status;
根据返回结果的Master_Host,可知道目前节点的Master是哪个,然后一次上溯,这个过程不仅能获取Master,还能感知集群的拓扑结构,是个实用的方法。
但是在遇到Master-Master这种结构的时候,就比较麻烦了。
2. 通过 show slave status;
…