请首先下载个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()函数目前我在虚拟机里面无法测试它有重复的现象发生
