首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL多查询/事务限制

MySQL多查询/事务限制
EN

Stack Overflow用户
提问于 2016-02-16 13:48:17
回答 2查看 118关注 0票数 1

我正在努力弄清楚MySQL对于我的用例是否足够。我尝试将10万行插入到本地mysql服务器中,这样做很好。我看到DB开始使用数据填充。

然后,我对运行相同的插入脚本。一切似乎都很好,但出于某种原因,DB停止在67667条目之后插入条目,尽管DB的响应是插入成功。

MySQL是否有某种限制,或者是什么导致了这种行为?

我的测试脚本:

代码语言:javascript
复制
// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$conn->select_db($database);
$insertData = '';

for ($i = 0; $i < 100000; $i++) {
  $insertData .= "INSERT INTO table (isin) VALUES ('".uniqid()."');";
}

if ($conn->multi_query($insertData) === true) {
  echo "New records created successfully";
} else {
  echo "Error: <br>" . $conn->error;
}
$conn->close();

我的测试表只有两列,idisin编号。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-16 13:52:07

尝试使用mysql批处理插入。

代码语言:javascript
复制
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

在循环中构建这个部分,即(1,2,3),(4,5,6),(7,8,9),然后只使用一个INSERT查询

票数 2
EN

Stack Overflow用户

发布于 2016-02-16 13:56:06

试着这样做:

代码语言:javascript
复制
$val = "";
for ($i = 0; $i < 100000; $i++) {
  $val .= "('".uniqid()."'),";
}
$val = rtrim($val,",");
$insertData = "INSERT INTO table (isin) values $val";
$conn->query($insertData);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35434347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档