11 2013 档案

摘要:很早之前写的文章,重新回顾和学习下,也可以看这篇文章说明。 按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ)。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用--transaction-isolation选项,或 阅读全文
posted @ 2013-11-22 14:40 jyzhou 阅读(133470) 评论(15) 推荐(21) 编辑
摘要:数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性。InnoDB是一个支持行锁的存储引擎,锁的类型有:共享锁(S)、排他锁(X)、意向共享(IS)、意向排他(IX)。为了提供更好的并发,InnoDB提供了非锁定读:不需要等待访问行上的锁释放,读取行的一个快照。该方法是通过InnoDB的一个特 阅读全文
posted @ 2013-11-21 17:55 jyzhou 阅读(87907) 评论(26) 推荐(29) 编辑
摘要:背景: 自增长是一个很常见的数据属性,在MySQL中大家都很愿意让自增长属性的字段当一个主键。特别是InnoDB,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,这里要说明下自增主键需要注意的几个事项。问题一:表锁 在MySQL5.1.22之前,InnoDB自增值是通过其本身的自增长计数器来获取值,该实现方式是通过表锁机制来完成的(AUTO-INC LOCKING)。锁不是在每次事务完成后释放,而是在完成对自增长值插入的SQL语句后释放,要等待其释放才能进行后续操作。比如说当表里有一个auto_increment字段的时候,innoDB会在内存里保存一个计数器用来记录au 阅读全文
posted @ 2013-11-20 17:38 jyzhou 阅读(12569) 评论(4) 推荐(1) 编辑
摘要:本文来自:http://dinglin.iteye.com/blog/1976026#comments背景 客户报告了一个count(distinct)语句返回结果错误,实际结果存在值,但是用count(distinct)统计后返回的是0。将问题简化后复现如下,影响已知的所有版本。这里的 set tmp_table_size=1024; 一定是在插入前设置,这样下面的操作就是按照这个大小进行的,最终出现错误的结果,解决办法:1,开始前设置足够大的tmp_table_size(推荐);2,设置成1024,在不修改tmp_table_size 的前提下,设置 set sql_big_tables= 阅读全文
posted @ 2013-11-18 13:38 jyzhou 阅读(2079) 评论(0) 推荐(0) 编辑
摘要:MySQL在备份方面包含了自身的mysqldump工具,但其只支持单线程工作,这就使得它无法迅速的备份数据。而mydumper作为一个实用工具,能够良好支持多线程工作,这使得它在处理速度方面十倍于传统的mysqldump。其特征之一是在处理过程中需要对列表加以锁定,因此如果我们需要在工作时段执行备份 阅读全文
posted @ 2013-11-15 13:36 jyzhou 阅读(12586) 评论(4) 推荐(3) 编辑
摘要:从MySQL的Innodb特性中我们知道,Inndob的表空间有共享和独享的特点,如果是共享的。则默认会把表空间存放在一个文件中(ibdata1),当开启独享表空间参数Innodb_file_per_table时,会为每个Innodb表创建一个.ibd的文件。文章讨论在独享表空间卸载、装载、迁移Innodb表的情况。条件:2台服务器:A和B,需要A服务器上的表迁移到B服务器。Innodb表:sysUser,记录数:351781。以下测试在MySQL 5.5.34中进行。开始处理:1:在B服务器上建立sysUser表,并且执行:zjy@B : db_test 09:50:30>alter 阅读全文
posted @ 2013-11-12 14:46 jyzhou 阅读(5134) 评论(0) 推荐(0) 编辑
摘要:看完 David Jiang 大神写的 <Innodb 技术内幕 第2版> 的第2章,对Innodb有了进一步的认识,大致的总结下知识点,方便自己查阅。 第一部分:线程 Innodb是一个多线程的,各个线程负责不同的任务。主要的线程有:Master Thread、IO Thread、Purge Th 阅读全文
posted @ 2013-11-06 13:16 jyzhou 阅读(2104) 评论(2) 推荐(3) 编辑

点击右上角即可分享
微信分享提示