MySQL 之 Metadata Locking 研究】的更多相关文章

MySQL5.5 中引入了 metadata lock. 顾名思义,metadata lock 不是为了保护表中的数据的,而是保护 database objects(元数据)的.包括表结构.schema.存储过程.函数.触发器.mysql的调度事件(events). 要理解 metadata lock 最重要的一点就是:将 metadata lock放到数据库事务的语义中来理解.metadata lock 的作用就是当一个事务在执行时,事务涉及到的所有元数据(metadata,也就是 datab…
  MySQL5.5 中引入了 metadata lock. 顾名思义,metadata lock 不是为了保护表中的数据的,而是保护 database objects(元数据)的.包括表结构.schema.存储过程.函数.触发器.mysql的调度事件(events). 要理解 metadata lock 最重要的一点就是:将 metadata lock放到数据库事务的语义中来理解.metadata lock 的作用就是当一个事务在执行时,事务涉及到的所有元数据(metadata,也就是 dat…
昨天晚上上线,却发现一个ddl语句长时间没有生效 查processlist, 发现包括ddl语句在内的众多查询提示 “Waiting for table metadata lock” 唯一没有该提示的查询为一个全表查询,并且Time项数值最大. kill掉这个查询的线程,后面的ddl语句正常进行了 之前一直听说metadata lock,就是元数据锁,也叫字典锁或者表结构锁.但是没有遇到过. 后来又试了一下——只要在session1里有未完成的增删查改事务,如果在另一个session2中出现加表…
笔者觉得,分库分表确实好的.但是,动不动搞分库分表,太麻烦了.分库分表虽然是提高数据库性能的常规办法,但是太麻烦了.所以,尝试研究mysql的分区到底如何. 之前写过一篇文章,http://www.cnblogs.com/wangtao_20/p/7115962.html 讨论过订单表的分库分表,折腾起来工作量挺大的,需要多少技术去折腾.做过的人才知道有多麻烦 要按照什么字段切分,切分数据后,要迁移数据;分库分表后,会涉及到跨库.跨表查询,为了解决查询问题,又得用其他方案来弥补(比如为了应对查询…
由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统:假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为: ; --如果restnum大于0,执行update ; 问题来了,当2个人同时借的时候,有可能第一个人执行select语句的时候,第二个人插了进来,在第一个人没来得及更新book表的时候,第二个人就查到了数据,但这是一个脏数据,因为第一个人会把restnum值减1,因此第二个人本来应该是查到id=1的书restnum为0了,因此不会执行u…
一致性读,又称为快照读.使用的是MVCC机制读取undo中的已经提交的数据.所以它的读取是非阻塞的. 相关文档:http://dev.mysql.com/doc/refman/5.6/en/innodb-consistent-read.html A consistent read means that InnoDB uses multi-versioning to present to a query a snapshot of the database at a point in time.…
原文:http://blog.csdn.net/minipeach/article/details/5325161/ 做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统.假设 id=1 的这本书库存为 1 ,但是有 2 个人同时来借这本书,此处的逻辑为 Select   restnum  from  book  where  id =1 ; -- 如果 restnum 大于 0 ,执行 update Update   book  set restnum=…
http://www.cnblogs.com/digdeep/p/4947694.html 一致性读,又称为快照读.使用的是MVCC机制读取undo中的已经提交的数据.所以它的读取是非阻塞的. 相关文档:http://dev.mysql.com/doc/refman/5.6/en/innodb-consistent-read.html A consistent read means that InnoDB uses multi-versioning to present to a query a…
    hive默认使用derby数据库保存元数据,derby数据库比较小众,并且一次只能打开一个会话,一般修改为mysql数据库. 1.修改conf/hive-site.xml配置项: <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value>…
一.索引简介 1. 为什么要使用索引 查询高效 2. 什么样的信息能成为索引 主键,唯一键,普通键等 二.优化你的索引 1. 二叉查找树 二叉查找树,也称二叉搜索树,或二叉排序树.其定义也比较简单,要么是一颗空树,要么就是具有如下性质的二叉树: (1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值: (2) 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值: (3) 任意节点的左.右子树也分别为二叉查找树: (4) 没有键值相等的节点. 优点: 1.二分查找…