mysql slap_mysqlslap

MySQL自带的测试工具mysqlslap

参考

mysqlslap运行三部曲

1·创建库、表和数据,这个过程用一个客户端连接完成

2·运行压力测试,这个过程可以有很多客户端连接

3·清理数据,这个过程用一个客户端连接完成

举例

1·自己提供SQL语句,设置分隔符为";",50个客户端并发,可以设置多个并发,用逗号隔开,如10,20,30,每个客户端重复进行200次查询

mysqlslap

--delimiter=";" \

--create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"

\

--query="SELECT * FROM a" --concurrency=50 --iterations=200

2·让mysqlslap自己生成SQL语句,并创建两个int列和三个varchar列的表。用5个客户端重复20次查询。不创建表或者插入数据(换言之,用test库和数据)

mysqlslap

--concurrency=5 --iterations=20 \

--number-int-cols=2

--number-char-cols=3 \

--auto-generate-sql

3·告诉mysqlslap从指定的sql文件中读取语句。

mysqlslap

--concurrency=5 \

--iterations=5 --query=query.sql --create=create.sql

\

--delimiter=";"

帮助信息

-a, --auto-generate-sql自动生成SQL

--auto-generate-sql-add-autoincrement自动生成SQL语句,并添加自动增长列

--auto-generate-sql-guid-primary

自动产生guid格式的主键

--auto-generate-sql-load-type=name指定测试的类型mixed,update,write,key,read,默认是mixed

--auto-generate-sql-write-number=#每个线程中产生多少个insert,默认值100

--commit=#X个语句后,执行一次commit

-C, --compress压缩

-c,

--concurrency=name并发连接线程数,多个并发用逗号隔开,例如--concurrency=10,50,100

--create=namename指定一个sql文件或者sql语句,用来建表

--create-schema=name创建一个测试用的架构,即MySQL下的库

-e,

--engine=name指定存储引擎

-h, --host=name连接主机

-i, --iterations=#重复执行测试的次数

-x,

--number-char-cols=name创建测试表的char型字段数量

-y,

--number-int-cols=name创建测试表的int型字段数

--number-of-queries=#总的测试查询次数(并发客户数×每客户查询次数)

--iterations=N, -i N测试执行的迭代次数

--detach=N执行N条语句后断开重连

--debug-info, -T打印内存和CPU的信息

--only-print只打印测试语句而不实际执行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是一个简单的 PHP 脚本。让我逐行为你进行分析: 1. 第一行是 PHP 的注释,用于提供代码的说明。 2. 接下来,通过 include("../sql-connections/sql-connect.php") 引入了一个名为 "sql-connect.php" 的文件,该文件包含了与 MySQL 数据库的连接参数。 3. error_reporting(0) 语句用于关闭错误报告,意味着脚本将不会显示任何错误消息。 4. 如果 $_POST['uname'] 和 $_POST['passwd'] 存在(即通过 POST 方法提交了 "uname" 和 "passwd" 参数),则执行以下代码块。 5. 将 $_POST['uname'] 和 $_POST['passwd'] 分别赋值给 $uname 和 $passwd 变量。 6. 打开一个名为 "result.txt" 的文件,并将用户名和密码写入该文件中。 7. 关闭文件句柄,完成写入操作。 8. @$sql 变量存储了一个 SQL 查询语句,该语句从名为 "users" 的表中选取符合用户名和密码匹配的记录。 9. 执行查询并将结果赋值给 $result 变量。 10. 使用 mysql_fetch_array() 函数从结果中获取一行数据,并将其赋值给 $row 变量。 11. 如果 $row 存在(即查询结果非空),则执行以下代码块: - 输出一个换行符和一个带有黄色字体的文本。 - 输出一个换行符和一个带有蓝色字体的文本。 - 输出一个换行符和一个带有蓝色字体的文本,显示登录名和密码。 - 输出两个换行符。 - 输出一个带有图片的标签。 12. 否则,执行以下代码块: - 输出一个带有蓝色字体的文本,显示错误消息。 - 使用 mysql_error() 函数打印 MySQL 错误信息。 - 输出三个换行符。 - 输出一个带有图片的标签。 13. 结束 if-else 块。 14. 结束 PHP 代码。 请注意,这段代码存在一些安全风险,比如没有对用户输入进行适当的过滤和验证,直接将用户输入的值拼接到 SQL 查询语句中,存在 SQL 注入的风险。建议在实际使用中进行安全性的改进和加强。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值