您的位置:首页 > 其它

如何压力测试一个唯一主键函数是否真的不会生成重复主键得方法

2017-08-31 15:37 585 查看
请首先下载个thinkphp5的框架运行以下代码


保存重复主键的文件:


think\apps\bank-data\data.csv



think\apps\index\controller\Index.php

<?php

namespace app\index\controller;

use PDO;

use think\Db;

class Index {

    public function index(){

        $msg_id = session_create_id();

        $db1 = Db::connect('db1');

        $db1->startTrans();

        try {

          $db1->execute(

              'INSERT  INTO think_message_supply(msg_id) VALUES (?)',

              [$msg_id]

          );

          $db1->commit();

        } catch (\Exception $e){

          $db1->rollback();

          file_put_contents(APP_PATH.'bank-data/data.csv', $msg_id.'  ##  '.date('Y-m-d H:i:s',time()).PHP_EOL, FILE_APPEND);

          return json(['success'=>0,'msg'=>"Failed"]);

                    

        }

        return json(['success'=>1,'msg'=>"Successful"]);

    }
}

[myth@contoso ~]$ ab -r -t 7200 -s 7200 -k -n 1000000 -c 1000 "http://contoso.org/index/index/index"

session_create_id() 换成函数uniqid() 会立刻出现很多重复的主键 

session_create_id()函数目前我在虚拟机里面无法测试它有重复的现象发生
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐