gpt4 book ai didi

mysql - 如何在没有 ASCII session 的情况下将二进制流插入到 MySQL 中?

转载 作者:行者123 更新时间:2023-11-29 23:19:46 24 4
gpt4 key购买 nike

我有一个用“C”编写的应用程序 - debian distro(使用 libmysqlclient)。我的应用程序正在向数据库中插入大量行(大约 30.000 行/秒,行长度 ~ 150 B)。插入会占用大量 CPU,因为客户端(我的应用程序)必须将二进制流(整数、blob)转换为 ASCII 表示形式,以形成有效的 SQL 插入语句。 MySQL 还必须将这些值转换为二进制表示形式并将其存储到文件中。

还有我的问题。是否有可能在没有此对话的情况下调用 SQL 插入?我一直在使用经典的 sprintf (在 libc 中实现)。现在,我正在使用优化版本不调用 sprintf (太多 func 调用)。我以为我会使用 MySQL 准备好的语句,但似乎准备好的语句也转换 '?'变量到 ASCII。

一月

最佳答案

参见mysql_real_query() .

22.8.7.56 mysql_real_query()

int mysql_real_query(MYSQL *mysql, const char *stmt_str, unsigned long length)

显然,像下面这样的东西应该有效

#define DATA "insert into atable (acolumn) values('zero\000quotes\"\'etc ...')"
if (mysql_real_query(db, DATA, sizeof DATA - 1)) /* error */;

关于mysql - 如何在没有 ASCII session 的情况下将二进制流插入到 MySQL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27427402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com