使用PHP将MySQL查询输出为SQLite

使用PHP将MySQL查询输出为SQLite,php,mysql,ios,sqlite,Php,Mysql,Ios,Sqlite,我们有一个iOS应用程序,它必须从远程服务器下载大量用户数据(JSON格式),然后将这些数据插入本地SQLite数据库。由于数据太多,插入过程需要5分钟以上才能完成,这是不可接受的。该过程必须少于30秒 我们已经确定了一个潜在的解决方案:让远程服务器将用户的数据存储在SQLite数据库中(在远程机器上)。此数据库被压缩,然后由应用程序下载。因此,应用程序将不必进行任何数据插入,从而使过程更快 我们的远程服务器正在运行PHP/MySQL 我的问题: 在远程服务器上创建SQLite数据库的最快、最

我们有一个iOS应用程序,它必须从远程服务器下载大量用户数据(JSON格式),然后将这些数据插入本地SQLite数据库。由于数据太多,插入过程需要5分钟以上才能完成,这是不可接受的。该过程必须少于30秒

我们已经确定了一个潜在的解决方案:让远程服务器将用户的数据存储在SQLite数据库中(在远程机器上)。此数据库被压缩,然后由应用程序下载。因此,应用程序将不必进行任何数据插入,从而使过程更快

我们的远程服务器正在运行PHP/MySQL

我的问题:

  • 在远程服务器上创建SQLite数据库的最快、最有效的方法是什么
  • 是否可以将MySQL查询直接输出到SQLite表中
  • 是否可以创建一个临时MySQL数据库,然后将其转换为SQLite格式
  • 或者我们必须获取MySQL查询输出并将每条记录插入SQLite数据库吗

任何建议都将不胜感激。

我认为最好看看为什么插入过程需要5分钟

如果在SQLite中没有正确执行,则每个insert语句都将在单独的事务中执行。这是众所周知的非常缓慢。最好在一个SQLite事务中完成所有插入。这将使插入过程非常快,即使您正在谈论很多记录

在伪代码中,您需要执行以下操作:

SQLite.exec('begin transaction');
for (item in dataToInsert) {
    SQLite.exec('insert into table values ( ... )');
}
SQLite.exec('end transaction');
如果您想从PHP创建SQLite数据库,同样适用


关于这一点,您可以在这里读到很多:

是否可以创建一个临时MySQL数据库,然后将其转换为SQLite格式?
看看这里
在远程服务器上创建SQLite数据库的最快、最有效的方法是什么?
$db=SQLite\u open('mydatabase')