2022-10-27 354
写入速度
硬盘的速度,网卡的速度,写入行的数据量,数据在硬盘中的存放位置等等因素。
简单的数据,插入速度肯定快,复杂的插入肯定慢。
所以单纯这个问题不好回答,最好的办法是进行压力测试,最后求一个平均值。
一 测试环境:
MySQL表结构
CREATETABLE`user_10w`( `id`int(10)NOTNULLAUTO_INCREMENT, `name`varchar(20)DEFAULTNULL, `mobile`varchar(11)DEFAULTNULL, `add_time`int(11)DEFAULTNULL, `groupid`tinyint(1)DEFAULTNULL, `login_time`int(11)DEFAULTNULL, PRIMARYKEY(`id`) )ENGINE=MyISAMAUTO_INCREMENT=4730016DEFAULTCHARSET=utf8mb4
电脑配置
4核 Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz
ssd 120G硬盘
二. 开始测试
说明:单机测试,不涉及网卡,网络传输的影响
测试程序php pdo
include_once("tool.php"); $dsn='mysql:dbname=demo;host=127.0.0.1'; $user='root'; $pass='root'; try{ $hand=newPDO($dsn,$user,$pass); }catch(PDOException$e){ echo'Connectionfailed:'.$e->getMessage(); } $query=$hand->prepare("insertintouser_10w(name,mobile,add_time,groupid,last_login_time)values(?,?,?,?,?)"); $n=0; $count=1000000;//每次插入100w $t=time(); echo'startwrite,timeis'.$t."\n"; while(true){ $n++; $name=Tool::getRandomStr(5); $mobile=Tool::getRandNum(9); $group=Tool::getRandNum(1); $rs=$query->execute([$name,'13'.$mobile,time(),$group,time()]); if($n>$count)break; } echo'writeend,timeis'.(time()-$t)."\n";
1.无任何索引,单进程
startwrite,timeis1593338798 writeend,timeis50
耗时50s, 平均2w/秒
2. 给name添加普通索引
writeend,timeis60 root@test:/data/php#php7pdo.php startwrite,timeis1593393695 writeend,timeis61
大概慢了10s ,所以索引会导致插入变慢,因为要更新索引
负载
3. 多进程测试
用go写了一个简单的多进程执行程序
packagemain import( "os/exec" "sync" ) varwgsync.WaitGroup functestRun(wg*sync.WaitGroup){ c:=exec.Command("php7","./pdo.php") c.Run() wg.Done() } funcmain(){ varnint=10 wg.Add(n) fori:=0;i<n;i++{ gotestRun(&wg) } wg.Wait(); }
4进程负载
结果:
耗时115s ,插入速度平均3.4w/s
MySQL锁表状态
mysql status
10进程一起执行
10进程
耗时5‘10“ ,插入速度大概3.2w/s
MySQL锁表状态
MySQL status
最后:
不足之处,请各位指正。
原文链接:https://77isp.com/post/9993.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态