MySQL查询阻塞语句
select r.trx_id waiting_trx_id, r.trx_mysql_thread_Id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query from information_schema.innodb_lock_waits...
MySQL用表实现号池的功能
最近单位做IM聊天群其中一个功能是新建群,获取群号.群号是我们运营定义的。好的号码要留着卖吧.模拟群号的号池.create table test( id int primary key, state int)engine =innodb;insert into test values(1,0),(2,0),(3,0),(4,0),(5,0),(6,0),(7,0),(8...
MySQL自定义变量执行顺序
高性能MySQL 248页关于书中 MySQL自定义变量 确定取值顺序的一些实验和猜测.并不能保证正确.实验数据,test表 a是主键,b字段没有任何索引.CREATE TABLE test ( a int(11) NOT NULL, b int(11) DEFAULT NULL, PRIMARY KEY (a)) ENGINE=InnoDB;INSERT INTO test VALUES (1,100),(2,20),(3,5),(4...
MySQL自定义变量的三个小技巧
高性能MySQL 244页1.指定表的访问顺序实验数据:user是活跃用户表,user_archived是长时间不活跃的用户表.两个表的结构相同,冷热数据分开.create table user( id int primary key, name varchar(20));create table user_archived( id i...
定位生产环境中间件的问题代码
经常遇到一种情况,就是程序上线了,随着访问量的增加,中间件服务器的负载急剧升高.这个时候服务器很卡,却不知道卡在哪里,调整代码更无从谈起.首先,先找到中间件的进程.[root@centos6 ~]# jps -l或者[root@centos6 ~]# top应该都可以找到中间件的进程号(PID)然后top -p pid 按下shift+h 查看线程信息[root...
过多if-else分支的优化
JAVA程序经常看到一个函数中包含了十几个if-else的分支判断比如 根据不同职位增加工资的例子public class Employee { private int salary = 10; public void addMoney(String str) { &nb...
Oracle恢复误删除的数据文件
实验环境: CentOS 6.4 MySQL 5.6.141.模拟误删除了MySQL的数据文件在datadir目录删除所有的文件.[root@master ~]# rm -rf /dbdata/mysqldata/*[root@master ~]# ls /dbdata/mysqldata/[root@master ~]# 这个时候千万不要关闭数据库实例2.恢复首先找到MySQL的进程号PID,可...
Oracle闪回技术之闪回数据库
OCA/OCP认证考试指南 580页Oracle闪回技术包括1.闪回数据库2.闪回查询、事务和表3.闪回删除4.闪回数据归档闪回数据库 可以将数据库回退到过去的某一时刻,效果等同于不完整恢复.他将丢失在闪回点之后的所有数据,因为他必须使用resetlogs打开数据库.它可以恢复一些逻辑错误,比如update语句忘记了...
复制的过滤
二进制日志的过滤高可用MySQL 54页如果binlog_format为Statement,则过程比较复杂.如下图所示.如果binlog_format为row,则没有这么多歧义.中继日志的过滤过滤数据库过滤表
防跳号的两种方式
在财务上有一种需求,就是单据号必须连续不能中断.这种需求用Oracle的序列不能实现,MySQL的auto_increment也不能实现.因为事务回滚,或者实例重启,都可能造成单据号不连续的情况,就是跳号.防止跳号有两种方式,但是前提都是不能删除数据.1.用锁限制并发.一个表有两个字段,一个是模块名称,一个是当前模块的序列值create ...
MySQL选用可重复读之前一定要想到的事情(ICP验证和勘误)
前文关于ICP优化的实验貌似有误http://blog.itpub.net/29254281/viewspace-1398273/实验环境select @@optimizer_switch\G@@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_co...
在标准MySQL 5.6上查询没有使用过的索引的SQL
select distinct mysql.innodb_index_stats.table_name, mysql.innodb_index_stats.index_namefrom mysql.innodb_index_statswhere concat(mysql.innodb_index_stats.index_name, &nb...
MySQL选用可重复读之前一定要想到的事情(执行计划影响)
大约一年前发现MySQL在可重复读隔离级别下,可能出现全表的排他锁.当时并没有找到一个合理的解释.http://blog.itpub.net/29254281/viewspace-1081634/实验数据和环境CREATE TABLE t ( a int(11) NOT NULL, b int(11) DEFAULT NULL, PRIMARY KEY (a), KEY b (b)) ENGINE=InnoDB;INSERT ...
MySQL选用可重复读之前一定要想到的事情(无索引加锁验证)
之前的实验,提到过一个场景当前读(锁定读)加锁情况. 读提交 可重复读 主键索引 锁定主键索引锁定主键索引唯一索引 锁定唯一索引的值和主键索引的值锁定唯一索引的值和主键索引的值...
MySQL选用可重复读之前一定要想到的事情
MySQL选用可重复读隔离级别之前一定要想到的事情.锁MySQL在使用之前有三个务必要知道..(随着了解的深入这个极有可能再增加..)1.DDL会引起metadata lock,导致请求连环阻塞,甚至是查询请求.http://blog.itpub.net/29254281/viewspace-1383193/2.MySQLDump和XtraBackup的flush table命令会引起waiting for table连环阻...
MySQLDump在使用之前一定要想到的事情
MySQLDump经常用于迁移数据和备份.下面创建实验数据,两个数据库和若干表create database db1 ;use db1;create table t1(id int primary key);insert into t1 values(1),(2),(3);create table t2(id int primary key);insert into t2 values(1),(2),(3);create database db2;use db2;create table t3(id int pri...
Oracle使用impdp的network_link迁移数据库
年初需要迁移一台Oracle数据库,由于数据量不大,可以采用impdp的方式不同于以往,这次采用了network_link,在源数据库和目标数据库都没有文件的存留,并且过程更加简化.源数据库 172.16.1.38目标数据库 192.168.16.1141.首先,在目标数据库创建dblink创建源数据库的TNSSOURCE = ...
SQL星期数问题
MySQL技术内幕 SQL编程 48页其中讨论到一些时间日期的问题,非常有意思创建2015年1月的日期数据.create table testselect str_to_date('2014-12-27','%Y-%m-%d')+interval id day as "dt" from nums where id
MySQL连续范围问题
MySQL技术内幕 SQL编程 58页首先创建实验表create table t(a int primary key);insert into t values(1);insert into t values(2);insert into t values(3);insert into t values(100);insert into t values(101);insert into t values(103);insert into t values(104);insert into t values(105);commit;实验...
左百分号模糊查询的优化
先创建一个实验表,只有歌曲名称一列create table test(name varchar2(50));insert into test values('童年');insert into test values('家家有本难念的经');insert into test values('清风月朗&如山如水亦如虹翻唱《因为爱情》');insert into test values('爱的那份痛');insert into test values('倒带');insert in...