摘要:
统计信息概念 MySQL统计信息是指数据库通过采样、统计出来的表、索引的相关信息,例如,表的记录数、聚集索引page个数、字段的Cardinality....。MySQL在生成执行计划时,需要根据索引的统计信息进行估算,计算出最低代价(或者说是最小开销)的执行计划.MySQL支持有限的索引统计信息,因存储引擎不同而统计信息收集的方式也不同. MySQL官方关于统计信息的概念介绍几乎等同于无,不... 阅读全文
随笔分类 - 数据库技术(My SQL)
[翻译]——MySQL 8.0 Histograms
2019-11-07 23:27 by 潇湘隐者, 932 阅读, 收藏, 编辑
摘要:
前言: 本文是对这篇博客MySQL 8.0 Histograms的翻译,翻译如有不当的地方,敬请谅解,请尊重原创和翻译劳动成果,转载的时候请注明出处。谢谢! 英文原文地址:https://lefred.be/content/mysql-8-0-histograms/ 翻译原文地址:https://www.cnblogs.com/kerrycode/p/11817026.html 在... 阅读全文
MySQL的sleep函数的特殊特现象
2019-10-26 11:50 by 潇湘隐者, 2852 阅读, 收藏, 编辑
摘要:
MySQL中的系统函数sleep,实际应用的场景不多,一般用来做实验测试,昨天在测试的时候,意外发现sleep函数的一个特殊现象。如果在查询语句中使用sleep函数,那么休眠的时间跟返回的记录有关。如下测试所示: mysql> create table test(id int);Query OK, 0 rows affected (0.03 sec) mysql> select *,... 阅读全文
MySQL如何进行索引重建操作?
2019-10-20 09:32 by 潇湘隐者, 19554 阅读, 收藏, 编辑
摘要:
在MySQL数据库中,没有类似于SQL Server数据库或Oracle数据库中索引重建的语法(ALTER INDEX ... REBUILD),那么在MySQL数据库中,是否有什么方式重建索引呢? 在官方文档中"2.11.10 Rebuilding or Repairing Tables or Indexes"中,提到下面三种方式可以Rebuild Index · Dump ... 阅读全文
Azure上MySQL的离线备份:将备份拷贝到Azure Blob上
2019-08-21 15:51 by 潇湘隐者, 614 阅读, 收藏, 编辑
摘要:
公司在Azure的Iaas虚拟机上部署有好几台MySQL数据库,至于没有选择Azure Database for MySQL,是因为预算有限(钱不够啊!说多了也是泪,坑的还是DBA自己)。选择了Iaas的话,DBA就必须考虑离线备份(offline backup),以预防灾难性故障出现。我们选择将历史数据库备份文件用AzCopy同步到Azure存储账户的Blob存储上面。下面简单的介绍、总结一下如... 阅读全文
MySQL字符集与排序规则总结
2019-07-11 15:25 by 潇湘隐者, 53538 阅读, 收藏, 编辑
摘要:
字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些DBA都会将这个混淆,当然这个情况也有一些情有可原的原因。一来两者本来就是相辅相成,相互依赖关联; 另外一方面, 有些数据库并没有清晰的区分开两者。例如,SQL Server中字符集和排序规则就是合在一起的,创建一个新的数据库,只有一个Collation给你选择,并没有字符集选项概念,实际上你在选择... 阅读全文
MySQL系统变量auto_increment_increment与auto_increment_offset学习总结
2019-07-08 13:59 by 潇湘隐者, 5596 阅读, 收藏, 编辑
摘要:
在MySQL中,系统变量auto_increment_increment与auto_increment_offset是与自增列相关的两个参数变量。在官方文档中,将其划分为Replication Master Options and Variables 。具体参考官方文档17.1.6.2 Replication Master Options and Variables auto_incr... 阅读全文
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0
2019-06-18 15:31 by 潇湘隐者, 33155 阅读, 收藏, 编辑
摘要:
最近遇到一个MySQL连接的问题,远程连接MySQL时遇到“ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0”错误,如下所示: [root@DB-Server ~]# mysql -h 10.13.65.93 -u onecard -p E... 阅读全文
MySQL如何找出未提交事务信息
2019-06-12 23:34 by 潇湘隐者, 13879 阅读, 收藏, 编辑
摘要:
前阵子,我写了一篇博客“ORACLE中能否找到未提交事务的SQL语句”, 那么在MySQL数据库中,我们能否找出未提交事务执行的SQL语句或未提交事务的相关信息呢? 实验验证了一下,如果一个会话(连接)里面有一个未提交事务,然后不做任何操作,那么这个线程处于Sleep状态 mysql> select connection_id() from dual;+-----------------... 阅读全文
MySQL表的碎片整理和空间回收小结
2019-05-29 12:24 by 潇湘隐者, 40914 阅读, 收藏, 编辑
摘要:
MySQL表碎片化(Table Fragmentation)的原因 关于MySQL中表碎片化(Table Fragmentation)产生的原因,简单总结一下,MySQL Engine不同,碎片化的原因可能也有所差别。这里没有深入理解、分析这些差别。此文仅以InnoDB引擎为主。总结如有不足或错误的地方,敬请指出。 InnoDB表的数据存储在页(page)中,每个页可以存放多条记录。这些记... 阅读全文
MySQL系统变量sql_safe_updates总结
2019-03-21 09:14 by 潇湘隐者, 3167 阅读, 收藏, 编辑
摘要:
MySQL系统变量sql_safe_updates总结 在MySQL中,系统变量sql_safe_updates是个非常有意思的系统变量,在Oracle和SQL Server中都没有见过这样的参数或功能。如果这个系统变量设置为1的话,意味着update与delete将会受到限制。个人臆测,之所以提供这个功能,一方面是要避免出现更新或删除数据时,忘记添加WHERE条件,导致数据被误更新或误删的情... 阅读全文
MySQL:select command denied to user for table 'proc'案例
2019-01-08 16:44 by 潇湘隐者, 34005 阅读, 收藏, 编辑
摘要:
使用EMS MySQL Manager Pro(3.4.0.1)连接MySQL 5.6.20时,报错:“SELECT command denied to user xxx@xxx.xxx.xxx.xxx for table 'proc' 很是纳闷,后面使用同样的权限,发现使用命令工具mysql -h xxxx -u username -p连接时不会报错。个人猜测是因为EMS MySQ... 阅读全文
MySQL慢查询日志释疑总结
2018-11-15 15:25 by 潇湘隐者, 11325 阅读, 收藏, 编辑
摘要:
之前写了一篇“MySQL慢查询日志总结“,总结了一些MySQL慢查询日志常用的相关知识,这里总结一下在工作当中遇到关于MySQL慢查询日志的相关细节问题,有些是释疑或自己有疑惑,自己测试验证、解惑方面的知识。此篇只是总结个人的一些经验,不足之处,敬请指正! 1: 为什么在慢查询日志里面出现Query_time小于long_query_time阀值的SQL语句呢? 例如,如下... 阅读全文
Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)
2018-11-07 15:47 by 潇湘隐者, 11046 阅读, 收藏, 编辑
摘要:
今天一个同事反馈往一个MySQL数据库导入数据时,报“ERROR 1 (HY000): Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)”这样的错误,如下所示: uery OK, 0 rows affected (0.03 sec) ERROR 1 (HY000): Can't cr... 阅读全文
MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析
2018-11-05 14:49 by 潇湘隐者, 33063 阅读, 收藏, 编辑
摘要:
关于如何理解MySQL执行计划中Extra列的Using where、Using Index、Using index condition,Using index,Using where这四者的区别。首先,我们来看看官方文档关于三者的简单介绍(官方文档并没有介绍Using index,Using where这种情况): Using index (JSON property: using_... 阅读全文
Ubuntu上更改MySQL数据库数据存储目录
2018-10-15 23:37 by 潇湘隐者, 5433 阅读, 收藏, 编辑
摘要:
之前写过一篇博客“MySQL更改数据库数据存储目录”,当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之前的经验用不上了(或者说之前的总结不是太全面),修改完MySQL数据库数据存储目录后重启MySQL,发现MySQL服务无法启动。 root@mylnx2:/etc/mysql/mysql.conf.d# servi... 阅读全文
Ubuntu下面MySQL的参数文件my.cnf浅析
2018-10-07 00:09 by 潇湘隐者, 21572 阅读, 收藏, 编辑
摘要:
前几天刚接手一个MySQL数据,操作系统为Ubuntu 16.04.5 LTS, 数据库版本为5.7.23-0ubuntu0.16.04.1(APT方式安装的MySQL)。这个操作系统下的MySQL的配置文件my.cnf很多地方都让人有点不适应(跟之前的MySQL环境有些出入,之前都是维护RHEL、CentOS等操作系统环境下的MySQL)。遂研究总结了一下。具体如下所示: root@... 阅读全文
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
2018-09-20 14:45 by 潇湘隐者, 93723 阅读, 收藏, 编辑
摘要:
今天在MySQL 5.6版本的数据库中修改InnoDB表字段长度时遇到了"ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes"错误,第一次遇到这个错误,遂花了点学习、研究过、总结这个问题。 我们先来创建一个测试表,构造这样的错误。 mysql> use MyDB;Reading tab... 阅读全文
MySQL索引扩展(Index Extensions)学习总结
2018-09-12 16:19 by 潇湘隐者, 3945 阅读, 收藏, 编辑
摘要:
MySQL InnoDB的二级索引(Secondary Index)会自动补齐主键,将主键列追加到二级索引列后面。详细一点来说,InnoDB的二级索引(Secondary Index)除了存储索引列key值,还存储着主键的值(而不是指向主键的指针)。为什么这样做呢?因为InnoDB是以聚集索引方式组织数据的存储,即主键值相邻的数据行紧凑的存储在一起(索引组织表)。当数据行移动或者发生页分裂的时... 阅读全文
MySQL如何判别InnoDB表是独立表空间还是共享表空间
2018-08-21 23:37 by 潇湘隐者, 4333 阅读, 收藏, 编辑
摘要:
InnoDB采用按表空间(tablespace)的方式进行存储数据, 默认配置情况下会有一个初始大小为10MB, 名字为ibdata1的文件, 该文件就是默认的表空间文件(tablespce file),用户可以通过参数innodb_data_file_path对其进行设置,可以有多个数据文件,如果没有设置innodb_file_per_table的话, 那些Innodb存储类型的表的数据都... 阅读全文