存档

文章标签 ‘mysql’

用mysqlslap进行mysql压力测试

2010年5月30日
27 views 没有评论

mysqlslap是一个mysql官方提供的压力测试工具,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项。
下面我们就来看看一些比较重要的参数:
–defaults-file,配置文件存放位置
–create-schema,测试的schema,MySQL中schema也就是database
–concurrency,并发数
–engines,测试引擎,可以有多个,用分隔符隔开。
–iterations,迭代的实验次数
–socket,socket,文件位置
–debug-info,打印内存和CPU的信息
–only-print,只打印测试语句而不实际执行
–auto-generate-sql,自动产生测试SQL
–auto-generate-sql-load-type,测试SQL的类型。类型有mixed,update,write,key,read。
–number-of-queries,执行的SQL总数量
–number-int-cols,表内int列的数量
–number-char-cols,表内char列的数量
–query=name,使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。
测试例子如下:
[root@localhost ~]# /usr/local/mysql/bin/mysqlslap  –defaults-file=/etc/my.cnf –concurrency=200 –iterations=1 –number-int-cols=1 –auto-generate-sql –auto-generate-sql-load-type=write –engine=myisam,innodb –number-of-queries=200 -S/tmp/mysql.sock –debug-info  -uroot -p123
Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.087 seconds
        Minimum number of seconds to run all queries: 0.087 seconds
        Maximum number of seconds to run all queries: 0.087 seconds
        Number of clients running queries: 200
        Average number of queries per client: 1
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.551 seconds
        Minimum number of seconds to run all queries: 0.551 seconds
        Maximum number of seconds to run all queries: 0.551 seconds
        Number of clients running queries: 200
        Average number of queries per client: 1
User time 0.03, System time 0.05
Maximum resident set size 0, Integral resident set size 0
Non-physical pagefaults 2826, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 3340, Involuntary context switches 96
对于INNODB引擎,200个客户端同时运行这些SQL语句平均要花0.551秒。相应的MYISAM为0.087秒,测试结果也很简明,就不多少说了。
指定数据库的测试:
–create-schema,指定数据库名称
–query,     指定SQL语句,可以定位到某个包含SQL的文件
[root@localhost ~]# /usr/local/mysql/bin/mysqlslap –defaults-file=/etc/my.cnf –concurrency=50 –iterations=1 –create-schema=test –query=/root/test.sql -S/tmp/mysql.sock -uroot -p123
Benchmark
        Average number of seconds to run all queries: 0.021 seconds
        Minimum number of seconds to run all queries: 0.021 seconds
        Maximum number of seconds to run all queries: 0.021 seconds
        Number of clients running queries: 50
        Average number of queries per client: 1

阅读全文…

mysql

mysql使用普通用户备份出现的错误

2010年4月8日
12 views 没有评论

mysql使用普通用户备份出现:

[root@xok.la]# mysqldump -u dbuser -ppass db > db.sql
mysqldump: Got error: 1044: Access denied for user ‘dbuser’@'localhost’ to database ‘db’ when using LOCK TABLES
解决一:

加上-skip-lock-tables选项即可。即:

阅读全文…

mysql, 数据库 , ,

mysql中text,longtext,mediumtext字段类型的意思,以及区别

2010年4月8日
12 views 没有评论

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。

阅读全文…

mysql, 数据库

Digg用NoSQL替代MySQL

2010年3月15日
77 views 没有评论

继 Twitter和Facebook之后,社交新闻网站Digg决定跟 MySQL说再见,并替换掉它的大部分基础设施组成,Digg将从LAMP(Linux、 Apache、MySQL和Perl/PHP/Python)架构迁移到基于Cassandra的NoSQL架构。

阅读全文…

数据库 , , ,

MyISAM几个容易忽视的配置选项

2010年1月9日
9 views 没有评论

MyISAM在读操作占主导的情况下是很高效的。可一旦出现大量的读写并发,同InnoDB相比,MyISAM的效率就会直线下降,而 且,MyISAM和InnoDB的数据存储方式也有显著不同:通常,在MyISAM里,新数据会被附加到数据文件的结尾,可如果时常做一些 UPDATE,DELETE操作之后,数据文件就不再是连续的,形象一点来说,就是数据文件里出现了很多洞洞,此时再插入新数据时,按缺省设置会先看这些 洞洞的大小是否可以容纳下新数据,如果可以,则直接把新数据保存到洞洞里,反之,则把新数据保存到数据文件的结尾。之所以这样做是为了减少数据文件的大 小,降低文件碎片的产生。但InnoDB里则不是这样,在InnoDB里,由于主键是cluster的,所以,数据文件始终是按照主键排序的,如果使用自 增ID做主键,则新数据始终是位于数据文件的结尾。

阅读全文…

数据库 ,