mysql - 如何直接向mysql插入数据(不使用sql查询)

标签 mysql sql database

我有一个仅用于日志记录的 MySQL 数据库。它由几个简单的相似 MyISAM 表组成。总是有一个本地(即位于同一台机器上)客户端仅将数据写入数据库,而多个远程客户端仅读取数据。

我需要的是尽可能快地从本地客户端插入大量数据。

我已经尝试了很多方法来加快速度,例如通过增加值列表的长度来减少插入量,或者使用 LOAD DATA .. INFILE 和其他方法。

现在在我看来,我已经遇到了将值从字符串解析为其目标数据类型的限制(在解析查询或文本文件时是否完成并不重要)。

那么问题是:

MySQL 是否提供了一些直接为本地客户端操作数据的方法(即不使用 SQL)?也许有一些 API 允许通过简单地传递一个指针来插入数据。

再一次。我不想优化 SQL 代码或在脚本中调用与 hd1 所建议的相同的查询。我想要的是将数据缓冲区直接传递给数据库引擎。这意味着我根本不想调用 SQL。可能吗?

最佳答案

使用mysql的LOAD DATA命令:

将数据以 CSV 格式写入文件,然后执行此 OS 命令:

LOAD DATA INFILE 'somefile.csv' INTO TABLE mytable

有关详细信息,请参阅 documentation

关于mysql - 如何直接向mysql插入数据(不使用sql查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16785543/

相关文章:

MySQL 跨两行查找全名

sql - 如何编写可以给出以下结果的SQL?

MySQL 查询 avg 和 count 大于一个值

mysql - SQL查询单词(不是句子)

php - Laravel Eloquent : how to list posts from different authors on a page?

php - MySQL数据类型的用途

mysql - 如果不存在则添加行,或检索其 id 以供其他查询

MYSQL - 如何将2行相关数据合并为1行

php - 我如何为帐户创建定时禁令? (PHP/MySQL)

sql - 触发引发 : "ERROR: stack depth limit exceeded"