我想了解node mysql module如何理解其操作如何影响Electron.io Node应用的执行效果。
例如:我必须从 2m(百万)行的表格中备份到另一个数据库。首先,我尝试在Electron.io应用程序上使用node child_process。它适用于开发(# electrion main.js
),但它不适用于asar package,因为它有自己的子进程限制。
以下是我必须做的事情:
DROP TABLE IF EXISTS MY_SECOND_DATABASE.BACKUP_TABLE;
CREATE TABLE MY_SECOND_DATABASE.BACKUP_TABLE (
`NumberField` int(11) NOT NULL
);
mysql -h 127.0.0.1 -u root -proot MY_FIRST_DATABASE -e “SELECT NumberField FROM MY_TABLE” > /User/MacBook/Downloads/sql_output_content.txt
mysql -h 127.0.0.1 -u root -proot MY_SECOND_DATABASE -e "LOAD DATA LOCAL INFILE ‘/User/MacBook/Downloads/sql_output_content.txt’ INTO TABLE BACKUP_TABLE FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'"
答案 0 :(得分:1)
在您链接到的模块的自述文件的“简介”部分中,它解释了如何建立与数据库的连接:
您在这里使用两个数据库(在同一主机上但有两个数据库名称),因此您需要创建两个连接 - 第一个数据库和第二个数据库。
与第二个数据库的连接将用于删除表并创建一个新表,然后将使用与第一个数据库的连接来获取所有数据,并且将使用与第二个数据库的连接来保存所有数据。那个数据。
很难说没有测试哪种方式对你来说会更快但是如果你不能产生外部进程那么你就别无选择,只能从Node中使用数据库。