[MySQL FAQ]系列 -- 利用tcpdump简易抓取MySQL Query Log
原文参考:http://www.davidodwyer.com/category/tags/tcpdump-mysql #!/bin/bash tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e ' while(<>) { chomp; next if /^[^ ]+[ ]*$/;...
View Article[MySQL FAQ]系列 -- 如何从SQL备份文件中提取出特定库
原文参见:http://pento.net/2009/04/16/extracting-a-database-from-a-mysqldump-file/ 直接用 sed 命令从一个mysqldump备份出来的标准 SQL 文件中提取出特定数据库下的所有 SQL 语句: sed -n '/^-- Current Database: `test`/,/^-- Current Database:...
View Article[MySQL FAQ]系列 -- 用mysqlslap进行压力测试
mysqlslap是官方提供的压力测试工具之一,官方介绍如下: mysqlslap is a diagnostic program designed to emulate client load for a MySQL server and to report the timing of each stage. It works as if multiple clients are...
View Article[MySQL FAQ]系列 -- show engine innodb status显示信息不全?
问题:执行 show engine innodb status\G时,显示的信息不全,DEADLOCK相关信息太多,后面的都没了 原因:这是mysql客户端的一个bug:BUG#19825,交互式客户端限制了输出信息最大为 64KB,因此更多的信息无法显示。 解决办法:解决方法有两种: 1. 启用 innodb_status_file修改 my.cnf,增加类似下面一行...
View Article[MySQL FAQ]系列 -- 数据不算大,备份却非常慢
问题环境硬件:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram软件:2.6.9-55.ELsmp x86_64, mysql 5.1.x现象...
View Article[MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办
问:如果密码中包含反斜线,该如何处理呢?答:在mysql中,反斜线"\"是有特殊意义的,用于转义,因此如果密码中包含"\",就需要特别注意。有一种一劳永逸的办法,就是在密码中不用反斜线,哈哈。另一种,那就是需要多加几个反斜线,例如: (root:hostname:Thu Oct 15 09:15:38 2009)[mysql]> grant usage on *.* to...
View Article[MySQL FAQ]系列 -- 如何跨时区迁移数据
问:如果数据表中有时间字段,现在要迁移到其他时区的服务器上,该如何处理呢?答:在高版本的mysqldump中,新增了一个选项:--tz-utc,默认是启用的,来看看它的说明 SET TIME_ZONE='+00:00' at top of dump to allow dumping of TIMESTAMP data when a server has data in different time...
View Article[MySQL FAQ]系列 -- 新年新思想:MySQL也能并发导入数据
对MySQL的用户而言,备受诟病的一个问题就是导入SQL备份文件时不能并发,使得导入的效率很低。今天,我们就来改变下思路,尝试一下并发导入的方法,供大家参考。 1、问题分析想要实现并发导入,其实没那么难,最简单的思路就是:将完整的文件切分成多份,然后并发导入即可。在这里,我自己的做法是这样的: 1) 首先,假设只有一个库;多个库的情况也是类似,无非就是循环 2) 计算SQL文件总行数 3)...
View Article[MySQL FAQ]系列 -- 同样默认配置,为何mysql比pgsql慢多了
如果问这样的问题,我只能说你很菜鸟,哈哈。 不过,也不能全怪你,因为mysql的默认配置确实比较差劲,也没做最基本的优化调整。 现在的服务器,即使是办公用的PC,内存也大多1~2G了吧,默认配置分配给innodb的buffer pool才8M,真是服了,多少年了,也不改改。 还有另一个害人的地方是innodb数据文件的默认大小是10M,这个一般情况下,建议至少大于256M或512M。...
View Article[MySQL FAQ]系列 -- 从dump文件中抽取部分库表
其实很简单,就是利用正则表达式,从文件中抽取,可以用awk或sed,例如: 1. 抽取数据库 imysql_1 的全部SQL语句 #假设数据库 imysql_1 的下一个是 imysql_2 DBNAME1="imysql_1" DBNAME2="imysql_2" sed -n “/^-- Current Database: \`$DBNAME1\`/,/^-- Current Database:...
View Article[MySQL FAQ]系列 -- 用MySQL实现发号器
问题:用MySQL实现发号器功能,确保每次取到的ID号都是唯一的实现:下面是一个大致的思路,抛个砖,欢迎回帖。根据号段大小,决定是否分成多个表,每个表事先填充各个不同的号段。每个应用端取号时,设置事务隔离级别为:REPEATABLE READ,并且采用下面的方式读取数据 SELECT `ID` FROM `ID_RANGE_XX` ORDER BY ID LIMIT 1 FOR UPDATE...
View Article[MySQL优化案例]系列 -- InnoDB主键设计
众所周知,InnoDB是clustered-index table,因此对于InnoDB而言,主键具有特殊意义。可以通过主键直接定位到对应的某一数据行记录的物理位置,主键索引指向对应行记录,其他索引则都指向主键索引;因此,可以这么说,InnoDB其实就是一个 B-树索引,这棵B-树的索引就是主键,它的值则是对应的行记录。在InnoDB数据表设计中,我们需要注意几点:1. 显式的定义一个 INT...
View Article[MySQL FAQ]系列 -- MySQL执行ALTER TABLE导致读不一致性问题
转发一下某网友(Howard)的来信,先讨论一下,稍后再给结论 你好: 我现在有个关于mysql的问题一点思路都没有,想问下你,麻烦你有时间了看下。另外你一般有没有一个活跃的论坛或者小组之类的?mysql的版本是Server version: 5.1.51-community-log MySQL Community Server...
View Article使用Percona Xtrabackup备份SLAVE数据
现在我们可以很方便的用Xtrabackup取代ibbackup,作为innodb的在线热备工具使用。通常,我们会选择在SLAVE上进行备份,以减小MASTER的压力。 innobackupex是封装后的perl脚本,用于调度xtrabackup进行备份,附加了不少辅助功能,非常实用,下面是一个常见的innobackupex备份例子: ### ### innobackupex example ###...
View Article[MySQL FAQ]系列-net_buffer_length选项对数据备份及恢复影响
有一次和朋友讨论到 net-buffer-length 可能对mysqldump导出及恢复有影响,对此测试了一下,发现影响很小,基本可以忽略不计,下面是对比测试结果。说明:执行mysqldump时,net buffer...
View Article[MySQL FAQ]系列-关于连接MySQL报错lost connection 和 gone away
一般频繁出现的话,才需要关注,一天出现几次属于正常情况。频繁出现的原因一般有: 1. 网络,包括网络质量,服务器网卡驱动,程序连接数据库方式:ODBC/API,都是有区别的;这里的网络问题,可能出现在客户端,也可能出现在服务端 2. 如果使用ODBC的话,还需要注意部分ODBC版本可能存在bug,导致有问题 3....
View Article[MySQL FAQ]系列-关于设置innodb buffer pool size
按照惯例,如果前端应用程序采用长连接的话,那么innodb buffer pool最高可设置为物理内存大小的80%。不过部分在线DB由于并发连接数较高,每个线程分配的内存较多,或由于业务上升,并发事务数突然较大幅度提升,加上innodb buffer pool较大,导致了严重的内存交换(swap)发生。鉴于此,我们建议在这些活跃度较高/并发连接数较高的在线DB服务器上,适当调低innodb...
View ArticleTPCC-MySQL使用手册
一、 下载工具包 Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar(Bazaar是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical...
View ArticleInnoDB引擎数据表压缩特性测试
一、前言 Innodb Plugin引擎开始引入多种格式的行存储机制,目前支持:Antelope、Barracuda两种。其中Barracuda兼容Antelope格式。另外,Innodb plugin还支持行数据压缩特性,不过前提是采用Barracuda行存储格式。表空间启用压缩的前提是innodb表空间文件存储格式修改成:Barracuda,需要修改2个选项:...
View Articleinfobright下如何使用utf8字符集
目前infobright应用越来越多了,有些场景下需要和台管理系统共用,因此需要同时存在brighthouse和myisam两种引擎。这时候,如果需要brighthouse引擎支持utf8字符集,需要: 1. 数据库对象创建时务必使用utf8字符集,这点尤为关键,否则不可支持utf8; 2. 数据表对象创建时也使用utf8字符集; 3. 导入文件提前转换成utf8字符集; 4....
View Article