- 浏览: 800998 次
- 性别:
- 来自: 杭州
-
最新评论
-
137578346:
...
各版本MySQL并行复制的实现及优缺点 -
db_code_peon:
引用而这个“调整”,也不是简单的指针重赋,而是将这个page ...
MySQL源码学习:简述InnoDB的BP LRU策略 -
xtha21:
预申请ID的个数为:大于批量插入记录数的最近一个2的指数值再- ...
MySQL源码学习:innodb_autoinc_lock_mode 下自增id不连续的原因 -
lc15808798846:
奇哥好试了下,好像这个问题在5.7 已经不存在了,SQL不会h ...
autocommit=0引起的业务hang住 -
wangliushui:
Transfer 怎样保证事物的一致性,一个事物关联多个表的 ...
MySQL-Transfer2.2发布
文章列表
有同学问到MySQL的uuid这个函数。简要介绍一下。
用法
简单看到,这个值,每次执行都是不同的。
生成规则
第1 2 3 段是与时间有关的。
------
iteye的编辑对表格处理太差了,直接转成图片。click here to fetch original word.
问题
:
这个
bug
来源于官方的一个
bug
报告
,
感谢
@
印风
_
小希
.
现象很容易描述
,
直接上例子
.
5.1
以后的版本都有此问题
.
CREATE TABLE `tb` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
KEY `a` (`a`)
) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
...
1、问题
通常用mysqldump+source做数据备份和恢复。如果想要完全恢复备份时的状态,要删掉新表,一般思路就是让mysqldump生成drop database + create database.
bin/mysqldump -Srun/mysql.sock -uroot --all-databases --add-drop-database &>data.sql
但在将生成的data.sql执行source作恢复操作时,会发现报错。
"ERROR 1580 .... You cannot 'DROP' a l ...
背景
报表统计类的查询是一类耗时的查询。使用场景是QPS并不大,单每个查询由于需要访问较多数据,对大量数据做处理,执行时间较长(通常秒级以上)。
分析
可以将一个大查询分成多个子查询,如果子查询需要访问的数据为整个查询的1/n,则可估计执行时间为1/n。但由于MySQL一个查询只能在单线程中执行,导致即使将一个大查询拆分成多个子查询,多个子查询执行后合并,需要时间为n*1/n=1,仍不能提升其性能。
在实现levelDB挂载成MySQL引擎时,发现在实际存储是key-value格式时候,MySQL的异构数据同步,可以更简单和更通用。
以tair为例,简要描述一下以MySQL为基础的一种方案。
所谓异构数据同步,是指应用只更新MySQL,而由后端的某些机制将这些更新应用到其他数据存储服务上。
1、MySQL-Tair 引擎
a) 使用
1、背景
InnoDB引擎存储int类型时使用big-endian, 而MySQL使用litter-endian, 导致一个问题是在两个层之间拷贝int类型数据的时候必须用一个循环来处理,而不能直接memcpy。 在引擎层返回数据量很大的情况下,很耗cpu。
在报表类的一些查询中,会访问大量的数据。我们有个项目的一个查询需要访问到1.4w个bigint,这个时候cpu的消耗就体现出来了。
2、相关代码
目前使用的转换代码就是使用循环。
row_sel_fie
1、 问题背景
这个patch基于这样的需求:
a) 在MySQL刚刚启动时,有些情况下DBA希望能够先做一些操作,然后再允许应用连接进来。
b) 在一个全长连接高并发的服务出现一些特别耗费资源,导致影响整机服务的连接,kill以后客户端马上又连上来,“杀不掉”
因此考虑如果有个开关能够暂时禁止普通用户连接,能够满足上述两个需求。
InnoDB有个特性“fast index creation”,创建和删除非聚簇索引时不需要重建表。
这句是转载的:This mechanism also means that you can generally speed the overall process of creating and loading an indexed table by creating the table with only the clustered index, and adding the secondary indexes after the data is loaded.
因此想到在mysql ...
If a table contains several indexes and a select query does not have a “force index” hint clause, the MySQL optimizer take charge of determining which index to use. In some cases, we find that MySQL optimizer does not select the best index.
Here we discuss a strategy to deal with the proble ...
本文从5.1.48下的一个bug说起。前提是新特性fast index creation.
1、现象
5.1.48 (InnoDB plugin 1.0.9)
Session1
This article begins with a misunderstanding to discuss consistent read and next-key lock, and end up with a bug in MySQL optimizer. All bellow are based on the default isolation level, repeatable read, and innodb_locks_unsafe_for_binlog is off.
1、 Misunderstanding
1-1
Lo ...
背景
日志型应用的一个典型操作,是周期性地有大量的insert操作。这类操作需要对扩展表空间。
分析
在InnoDB里,扩展表空间的操作是在语句执行过程中,由执行线程直接调用的。
尤其是对于一些表每行比较大,则会出现每插入几条记录就需要扩展表空间。
虽然有insert buffer和write ahead loggi
一、问题复现
文件/tmp/data.sql中两列,每列一个数字1;
输入
CREATE TABLE `t` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`k` int(10) unsigned NOT NULL DEFAULT '0',
同事问起线上的"诡异"现象:已经在使用ib_logfile2,但ib_logfile0的更新时间也在改变,不是说是顺序更新的?
1、 ib_logfiles文件及作用
大家都知道这个是InnoDB的redolog。关于redolog的写入策略部分,可以看我之前的这个文章(链接)。
这个系列文件个数由参数innodb_log_files_in_group控制,若设置为4,则命名为ib_logf