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

我需要的是尽快插入来自本地客户端的大量数据。

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

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

所以问题是:

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

再来一次。我不想像建议的hd1那样优化SQL代码或在脚本中调用相同的查询。我想要的是将数据缓冲区直接传递给数据库引擎。这意味着我根本不想调用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/

10-09 23:49
查看更多