随笔分类 - MySQL
摘要:我们在Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了innod...
阅读全文
摘要:我们在Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了innod...
阅读全文
摘要:本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity)事务中的所有操作,要么全部完成,要...
阅读全文
摘要:1. 概述很多企业选择MySQL都会担心它的数据丢失问题,从而选择Oracle,但是其实并不十分清楚什么情况下,各种原因导致MySQL会丢失部分数据。本文不讨论Oracle和MySQL的优劣,仅仅关注MySQL丢失数据的几种情况。希望能够抛砖引玉,让各位MySQL大牛们梳理出MySQL最安全或者性价...
阅读全文
摘要:innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式,对于这个参数,文档上是这样描述的:有三个值:fdatasync(默认),O_DSYNC,O_DIRECT默认是fdatasync,调用fsync()去刷数据文件与redo log的buffer...
阅读全文
摘要:从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功能就形同虚设了。国内的空间商大部分可能并没有注意到这个问题,没有修改 Mysql 的默认设置。 为...
阅读全文
摘要:多源复制和多主复制的区别:多主复制示意图:多源复制示意图:在my.cnf中添加crash safe特性参数:master_info_repository=TABLE;relay_log_info_repository=TABLE;mysql> change master to master_host="10.186.21.102", master_port=13306, master_user="repl",master_password="repl" for channel="master1";Query
阅读全文
摘要:Node Group[number_of_node_groups] = number_of_data_nodes / NoOfReplicasPartitionWhen usingndbd, the maximum number of partitions that may be defined explicitly for anyNDBtable is8 * [number of node groups]. (The number of node groups in a MySQL Cluster is determined as discussed previously in this s
阅读全文
摘要:给 mysql 系统表加上 trigger1 Reply默认情况下,mysql 是不能给系统表,例如 mysql.user 加上触发器的。会提示ERROR 1465 (HY000): Triggers can not be created on system tables但是还是可以有办法绕过这个限制。在其他 db 里另外建一个结构名字一样的表,例如create table test.user like mysql.user然后在那个表上建好触发器。这样会在数据库目录中生成 “表名.TRG” 文件。把这个文件拷贝到 mysql 库的目录中,确认访问权限没问题后,重启一下 mysql ,触发器就
阅读全文
摘要:1 问题描述一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍:给定一条SQL,如何提取其中的where条件?where条件中的每个子条件,在SQL执行的过程中有分别起着什么样的作用?通过本文的介绍,希望读者能够更好地理解查询条件对于SQL语句的影响;撰写出更为优质的SQL语句;更好地理解一些术语,例如:MySQL 5.6中
阅读全文
摘要:MySQL 加锁处理分析发表于2013 年 12 月 13 日由hedengcheng1背景11.1MVCC:Snapshot Read vs Current Read21.2Cluster Index:聚簇索引31.32PL:Two-Phase Locking31.4Isolation Level42一条简单SQL的加锁实现分析52.1组合一:id主键+RC62.2组合二:id唯一索引+RC62.3组合三:id非唯一索引+RC72.4组合四:id无索引+RC82.5组合五:id主键+RR92.6组合六:id唯一索引+RR92.7组合七:id非唯一索引+RR92.8组合八:id无索引+RR11
阅读全文
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://huanghualiang.blog.51cto.com/6782683/1216786一、权限相关:1.修改sqlsecuritySql代码ALTERPROCEDUREwwwSQLSECURITYINVOKER;ALTERPROCEDUREwwwSQLSECURITYDEFINER;(1)MySQL存储过程是通过指定SQLSECURITY子句指定执行存储过程的实际用户;(2)如果SQLSECURITY子句指定为DEFINER,存储过程将使用存储过程的DEFINER执行存储过程,验
阅读全文
摘要:前言:最近Oracle MySQL在其官方Blog上贴出了 5.6中一些变量默认值的修改。其中innodb_old_blocks_time的默认值从0替换成了1000(即1s)关于该参数的作用摘录如下:how long in milliseconds (ms) a block inserted into the oldsublistmust stay there after its first access before it can be moved to the new sublist.Increasing this value protects against the buffer po
阅读全文
摘要:DBA某数据库集群每日17:00左右会出现一个性能陡降的现象,在10~20秒内主库出现大量慢查询。这些查询本身没有性能问题,也没有任何关联,可以认为是由于数据库系统负载较重,由于并发导致的慢查询。通过对全日志的梳理,已经查明每日17:00左右导致主库性能下降的问题原因是该时段在执行某定时任务中的一个Update语句。该update语句一次性会对约70万个row进行更新,引发大量数据库写入,是导致数据库性能下降的直接原因。1、问题描述 但是还存在一个疑点,那就是该定时任务每天会执行三次,零点,12点和17点,数据的更新量几乎一致,其中12点和17点均是业务的高峰期,为何只有下午17点会出现大量.
阅读全文
摘要:转载自http://www.cnblogs.com/ggjucheng/archive/2012/11/11/2765237.htmlExplain语法EXPLAIN SELECT ……变体:1. EXPLAIN EXTENDED SELECT ……将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS SELECT ……用于分区表的EXPLAIN执行计划包含的信息id包含一组数字,表示查询中执行select子句或操作表的顺序id相同,执行顺序由上至下如果是子查询,id的序号会递增,id值越.
阅读全文
摘要:原文地址:清除Linux中MySQL的使用痕迹~/.mysql_history作者:RogerZhuo原贴:http://bbs.chinaunix.net/thread-3676498-1-1.html讨论过此问题。背景:我们在管理MySQL server的时候,常常使用mysql命令行工具连接MySQL server进行操作,此时我们可以像shell命令行一样,按向上的方向键,mysql会给出我们最近执行的SQL命令和脚本;同linux command保存在~/.bash_history一样,你用mysql连接MySQL server的所有操作也会被记录到~/.mysql_history文
阅读全文
摘要:今天在项目中探讨到Oracle对于SQL语句的解析方法以及MySQL相应的处理方法:-----------------------------------------------------------------------------------------------------------先来看一下Oracle的机制:oralce中有硬解析和软解析的概念,为了能够理解好这两个概念,我们先引入oralce是怎么执行SQL的oracle在执行SQL的时候有如下步骤:1 语法检查,例如SQL的拼写2 语义检查,例如sql中的对象是否存在及相关的权限3 sql解析,对sql进行语法解析,生成解
阅读全文
摘要:一、概述 事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>能。例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL 的事件调度器则可以实现每秒钟执行一个任务,这在一些对实时性要>求较高的环境下就非常实用了。 事件调度器是定时触发执行的,在这个角度上也可以称作是"临时的触发器"。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个(间隔)时间执行一些语句。事件是由一个特定的线程来管理的,也就是所谓的"事件调度器"
阅读全文
摘要:在项目中用到了timestamp这个类型,该字段本意是用于存储改行记录的创建时间的,实际上这是一个很危险的设置;mysql官方文档上有这么一段话:TheTIMESTAMPdata type provides a type that you can use to automatically markINSERTorUPDATEoperations with the current date and time. If you have multipleTIMESTAMPcolumns in a table, only the first one is updated automatically.
阅读全文
摘要:mysql performance_schema 初探:mysql5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的:需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.cnf 中不能动态修改。先看看有什么东西吧:mysql> use performance_schema;Database changedmysql> show tables ;+----------------------------------------------+| Tables_in_performanc
阅读全文

浙公网安备 33010602011771号