- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 6530 行数据需要查询并插入到我的数据库中。有希望有办法加快速度吗?这花了 7 分钟完成。
column_counter 是我的行的大小。我正在使用 snprintf 将我的值转换为字符串,以便 mysql_query 接受它。
我更新了代码。现在它禁用自动提交。我删除了memset。我想我需要它来避免段错误。感谢您的所有建议。
mysql_autocommit(con, 0);
for(i = 0; i < column_counter; i++)
{
snprintf(querystring, sizeQuerystring,
"INSERT INTO earnings " \
"VALUES (%d, %d, %d, %d)",
column1[i], column2[i], column3[i], column4[i]);
if (mysql_query(con, querystring)) {
fprintf(stderr,"Insert failed\n");
fprintf(stderr,"%s\n",mysql_error(con));
finish_with_error(con);
}
//memset(querystring, 0, 256);
if(i - 1 == column_counter)
{
printf(" finished with earnings.csv \n", column_counter);
}
}
mysql_commit(con);
最佳答案
I have 6530 lines of data to query and insert into my database. Is there hopefully a way to speed this up? This took 7 minutes to do.
您至少可以对 MySQL API 的使用方式进行两项不同且兼容的更改:
由于您正在执行的所有插入语句都具有相同的形式,并且仅插入的值不同,因此您应该能够创建 prepared statement然后您可以重复使用。在这种情况下,这可以节省大量时间,因为 SQL 只需要解析一次。
因为我没有看到对 mysql_commit()
的调用,所以我假设您正在自动提交模式下操作。在同一个事务中将一堆语句一起批处理,然后一次提交它们通常会更有效。这需要disabling autocommit mode并在最后(即循环终止后)执行手动提交。
此外,虽然它不太可能对整体时间产生太大影响,但您可以在循环末尾删除 memset()
。这是毫无意义的,因为您将在下一次迭代期间覆盖相同的字节。
关于mysql - c编程加速mysql_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46980232/
define('DB_NAME','swiftx'); define('DB_USER','root'); define('DB_PASSWORD','123456'); define('DB_HOS
我有 2 个不同的服务器:一台正在运行的 Plesk Panel(PHP 5.2.13 和 MySQL 5.0.45-community-nt),另一个运行 Zend Server 5.5(PHP 5
我有问题,我想在哈希值相同时进行更新。 哈希在表中是唯一的。我找不到正确的方法来做到这一点。 mysql_query("INSERT INTO shop_product_search3_muokatt
这只是我在 SQL 查询中遇到的一个小问题。它返回一个语法错误,搜索了很长一段时间后,我找不到问题所在。你们谁能找到它吗? 查询: INSERT INTO `blogposts` (id,'autho
我想插入一个表,其中用户 id = 某物并将 o 更改为 1,表示用户在线 试过了 mysql_query("INSERT INTO `20s` VALUES('','','','','','',''
mysql_query php 中的函数返回 TRUE关于成功和FALSE失败时。 我的问题是什么才算是成功? 换句话说,当 SELECT 中没有任何内容时返回什么语句,或者如果有 UPDATE没有匹
我有以下mysql查询 $query = "SELECT id FROM users WHERE... 我想要的是这样的 $query = "SELECT id FROM users WHERE id
Name of company: 包含与数据库的连接,此处不再赘述。连接工作正常,这不是问题。 问题是:php 代码不起作用。 php 代码不会将数据插入我的数据库。怎么了? 最佳答案 在 '
这个问题在这里已经有了答案: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答)
我有这个 SQL: INSERT INTO v3_peers (torrent, peer_id, ip, ipv6, port, smoke_ip, uplo
我在使用 utf8 编码对数据库运行查询时遇到了一些问题。一切正常,直到我尝试使用带有特殊字符的字符串。我无法对数据库进行大量更改,因为我正在向现有的 prestashop 模板添加一些单独的页面。
我要将一行更新到 mysql 数据库中。 senarius 是:从表单中获取值并重定向到另一个文件,并使用更新语句将表单值设置为数据库。问题是 mysql_query 返回值 1 并且不返回任何错误但
$sql = "UPDATE 'load' SET 'graphe'=".$graphe."','intersection'='".$intersection."','ville'='".$ville
我正在使用动态生成的查询字符串来显示某些报告的搜索表单的结果 - 有 5 个搜索字段,$query2 可以不包含任何内容或包含 5 个额外的搜索值。 $query="SELECT * from emp
我正在使用 PHP 创建类似 twitter 的帖子流。如果用户只想查看他创建的帖子,我应该如何编写 mysql 查询? 这是我现在所拥有的:mysql_query("SELECT * FROMtim
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
这是我的代码 for ($i=0;$i<1000;$i++) { if ($testArray[$i] != 0) { $sql = "insert into `dbT
我已经在 AWS 上使用 Apache、PHP、MYSQL 设置了一个 EC2 Web 服务器,到目前为止,除此之外的所有代码(PHP 和 HTML5)都已在其中运行。我是 PHP 和 mySQL 新
我知道我不应该使用 mysql_query 进行数据库查询,但我需要修改现有代码。我需要做的是将 php 变量作为 sql 查询的字段名称传递。我尝试过这样的方式: $my_field = "fiel
如果我没记错的话,mysql_query()函数使用TCP协议(protocol)发送数据。是否可以重新组装查询 tcp 数据包(例如通过网络发送)并在其他地方重建查询? 我希望下图能更多地解释我的问
我是一名优秀的程序员,十分优秀!