用mysql5的C API库函数,mysql_query()。
我程序的目的是从文件们中解析出信息再存入数据库,数据量很大,每一个文件就能插入5000多行,可是速度好慢啊,有什么可以优化的方法吗?表是普通的表格,insert delayed不支持的。
mysql_query()这个函数执行了insert语句,很耗时的,请问各位大侠有没有好方法呢?
我程序的目的是从文件们中解析出信息再存入数据库,数据量很大,每一个文件就能插入5000多行,可是速度好慢啊,有什么可以优化的方法吗?表是普通的表格,insert delayed不支持的。
mysql_query()这个函数执行了insert语句,很耗时的,请问各位大侠有没有好方法呢?
数据库只是程序的临时存储空间,对文件逻辑检查是最终目的。
资料上说INSERT DELAYED仅适用于MyISAM, MEMORY和ARCHIVE表,不知道怎么建立这三种表呀?
不知道还有没有别的什么方法解决,求高手指点。
1. 根据表的定义,写程序生成符合要求的txt文件,然后用命令行直接导入。(批处理)
这个应该速度相当快。只是要注意错误检查。
2. 调用mysql c api, 最好使用stmt_bind之类的api, 一次可以绑定100行或者更多行。速度也相当不错。
不要使用mysql_query之类的调用。
能不能再问个问题,就是这10多G的东西在哪里呀,我只看到C盘减少了,就是找不到表格存储的位置
没有在服务器安装目录下,不知道存储到哪里去了
mysql> show variables like 'data%'
-> ;
+---------------+----------------+
| Variable_name | Value |
+---------------+----------------+
| datadir | D:\MySQL\data\ |
+---------------+----------------+
1 row in set (0.22 sec)