linux - 怎么做到mysql 一张表每日1亿次插入
大家讲道理
大家讲道理 2017-04-17 13:59:01
[MySQL讨论组]

怎么做到mysql 一张表每日1亿次插入 每分钟平均7w次插入

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(7)
PHP中文网

=。=~这个完全没问题!!

批量插入就能搞定。

瓶颈在于:磁盘io

天蓬老师

昨天晚上刚运行了一个一晚上插入将近7亿条数据的小程序,

这里是代码

$str = "abcdefghijklmnopqrstuvwxyz";
$mysqli = new mysqli('主机名','用户名','密码','test');
$mysqli->autocommit(false);
$time = microtime();
for ($i=0; $i < 1000000; $i++) { 
    $name = $str[rand(0, strlen($mysqli))] . $str[rand(0, strlen($mysqli))] . $str[rand(0, strlen($mysqli))] . $str[rand(0, strlen($mysqli))];
    $mysqli->query("insert into a(name) values '$name'");
}
$mysqli->commit();

希望对你有帮助。

怪我咯

1秒钟19次的写入,这个好像没什么好优化的。。。

如要优化

数据表选用InnoDB,innodb_flush_log_at_trx_commit 设置大一点

去掉自增ID,用程序生成随机uuid(或者不要?)

天蓬老师

你这个问题和‘如何做一个大流量网站’
一样空泛

大家讲道理

《Mysql技术内幕--innodb储存引擎》 第18页

还有一些其他站点,在Innodb上插入/更新操作平均800次/秒...

以此判断出你的问题,很大。。。

高洛峰
你干嘛不写成拓展式插入呢,insert into values (val1,val1),(val1,val1),(val1,val1)...(val1,val1);
PHPz

Innodb下,插入时limit(5000)试下,磁盘IO是最大的瓶颈

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号