自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

mysql set global read_only操作

       最近了解mysql MDL的设计。发现mysql "set global read_only=on/off"操作也依赖metadata lock(5.6.16, 推测是从5.5引入metadata lock后就这样了,没有查看更早版本的代码确认)。下面是set global read_only=on/off的实现。      调用路径如下: #0 fix_read_on...

2014-12-02 15:43:42 1034

原创 mysql flush logs

        最近遇到一台mysql机器,空间不足,查看后发现是slow log文件占了大量空间(ext4),果断rm掉,然后再flush logs。flush logs的时候发现mysql会hang住。翻了一下flush logs的逻辑,执行flush logs的时候,mysql会执行reopen_file操作,reopen_file()先closeslow log file,再open,...

2014-05-11 21:23:46 771

原创 关闭mysql的几种方式和区别

      关闭mysql的方式大致有下面几种:      kill `pidof mysqld`      kill -9 `pidof mysqld`      mysqladmin -uroot shutdown      其中kill `pidof mysqld`是通过信号量SIGTERM(15),结束进程,这个同mysqladmin -uroot shutdown的方...

2013-09-04 18:58:00 555

原创 mysql slave 备库延迟是怎么得到的

    在mysql的备库的监控中有一项很重要的指标:Seconds_Behind_Master,这个值是怎么得到的呢?下面从5.1.58的代码中分析一下:    mysql的replication中有2个比较重要的class:Master_info(rpl_mi.h), Relay_log_info(rpl_rli.h),他们分别对应于master,info文件和slave.info文件...

2013-07-28 14:43:41 337

原创 mysql expire_logs_days是怎么生效的

       mysql主备复制是通过binlog完成的。在开启binlog的情况下,expire_logs_days参数可以让mysql自动清理若干天前的binlog。那么expire_logs_days是在什么时候生效的呢?初步猜想实在每次产生一个新的binlog的时候去判断一次。查了一下具体的实现,确实是这样的:(5.1.58, log.cc)int MYSQL_BIN_LOG::r...

2013-07-07 15:33:05 1185

原创 mysql my.cnf文件的option

       mysql的配置文件my.cnf里是由一个个的option组成的([***])。各个部分的作用大致如下:[client] -- 这部分的配置是mysql自带的client回去读取的部分,可以配置port/password/socket等port=3306socket=/tmp/mysql.sock[mysql] -- 这部分配置mysql command tool...

2013-07-06 14:41:25 126

原创 mysql compound in 查询

        mysql可以使用row constructor来做compound in 查询:select * from t where (col1,col2) in ((colt1,colt2),(colt11,colt22)).这种查询在批量查询的时候就会显得比较方便:业务上可以批量操作,提高效率。但是explain之后却发现,这种sql却使用了全表扫描。        首先看一下...

2013-07-03 21:41:33 133

原创 mysql create table

       粗略了解mysql create table的过程:create table的调用路径如下(5.1.58):do_command(sql_parse.cc)->dispatch_command(sql_parse.cc) ->mysql_parse(sql_parse.cc) ->mysql_execute_command(sq...

2013-06-23 13:00:51 209

原创 innodb main thread 处于 doing background drop table状态?

        一直好奇innodb main thread的thread state。最近偶然发现没有ddl操作的时候,show engine innodb status时,main thread处于"doing background drop tables",就顺便了解了一下有关 innodb main thread状态的一些处理逻辑。主要的处理逻辑在srv/srv0srv.c文件里。...

2013-06-21 21:26:53 217

原创 mysql drop table过程

       最近做drop table操作,24G的sas机器,ibd文件17G,大约需要14S,在此期间mysql(5.1.48)基本hang住。详细了解了一下mysql drop table过程,发现是mysql drop table的逻辑引起,主要有2方面的原因:drop table过程会持有buffer pool mutex,做2次遍历--对于大内存的mysql服务器,会导致mysq...

2013-06-17 20:08:29 608

mysql 数字类型

      最近看myssql的浮点类型,对mysql数据类型中的的数字类型做个小结:      tinyint/int/bigint,整型的最容易理解和使用,实际使用的时候整型用的也是最多的。知道有符号/无符号,tinyint 1个字节,int 4个字节,bigint 8个字节就可以了,没有其它可以纠结的,略微值得一提的是mysql的bool类型实际也是tinyint类型的,create...

2013-06-12 16:41:21 171

原创 mysql use db 后很卡

    平时自己使用的一台mysql,use db之后,总是感觉很卡,按完回车要快1s才能返回。觉得有什么蹊跷,就打开了general log,发现简单的use test,mysql实际执行了很多内容:130603 16:02:11 2 Query SELECT DATABASE() 2 Init DB test ...

2013-06-03 19:46:48 337

原创 innodb表空间的浪费

innodb表空间的浪费http://bugs.mysql.com/bug.php?id=68023http://bugs.mysql.com/bug.php?id=67963

2013-05-17 09:40:20 110

原创 mysql kill不生效?

       生产环境出现过多次mysql hang住,写操作的sql堵住的情况,这个时候使用kill来kill所有的连接,但是大部分时候连接kill 后处于freeing item状态,kill在这种场景下基本无效。       查看官方文档(以下大致翻译):(http://dev.mysql.com/doc/refman/5.5/en/kill.html)       kill执行...

2013-05-06 16:24:43 1408

原创 alter ignore table 添加unique key不生效的问题和临时解决方案

      遇到一个需求,已有的一个表,需要把已有的一个普通索引变成唯一索引,表数据量大约在百万级别,duplicate的量大约在几K左右。想到了使用alter ignore table (http://dev.mysql.com/doc/refman/5.5/en/alter-table.html),于是便找了一个测试库,发现依旧报uk冲突: root@test 12:55:26&gt...

2013-01-05 15:17:52 371

原创 mysql innodb_open_files设置过大导致的问题

今天上午不断的接到开发同学的反馈,测试环境的一台mysql(5.1.48),对应的应用总是不断的报连接数拿不到。登陆到机器后发现mysql -uroot连接不上,而netstat -nal |grep 3306|wc -l也只有1200个,而这台机器设置的max_connections=5000,max_user_connections=0,innodb_open_files=60000。 ...

2012-12-03 20:35:17 4223

原创 mysql备份出现swap问题

最近一台mysql机器晚上备份的时候总是出现swap告警,网上搜了一下mysql + swap 出了一堆结果。解决方案大致有这么一些:1、修改swappiness的值,设为0;2、mysql使用huge page。 在我自己遇到的问题里,出现swap是因为swappiness设置为60导致的:/etc/sysctl.conf里swappiness为0,/proc/sys/vm/sw...

2012-09-21 15:40:51 147

原创 mysql kill 指定用户的连接

昨天有个需求,需要kill掉aa用户建立的连接。第一个感觉是用老土的mysqladmin+grep完成: for id in `mysqladmin -uroot processlist | grep "aa" | awk '{print $2}' `doecho $idmysqladmin -uroot kill $idsleep 1done 这样很容易kil...

2012-09-06 19:43:36 408

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除