我有一个充满电影信息的数据库,然后从网络服务器上的XML文件读入数据库.
会发生什么是以下情况:
Gather/Parse XML and store film info as objects Begin Statement For every film object we found: Check to see if record for film exists in database If no film record, write data for film Commit Statement
目前我只是测试使用(非常基本)电影的存在:
SELECT film_title FROM film WHERE film_id = ?
如果它返回一行,那么电影就存在了,如果没有,那么我需要添加它...
我也试过用
INSERT INTO film (film_id, film_title, film_mStar, film_dStar, film_date) SELECT ?, ?, ?, ?, ?, ?, ? WHERE NOT EXISTS (SELECT 1 FROM film WHERE film_id = ?)
在处理时间方面完全相同的效果......
唯一的问题是,数据库中有很多数百条记录(很多电影!),并且因为它必须先检查数据库中是否存在电影才能编写,所以整个过程最终都会进行相当长一段时间(210部电影约27秒)
有没有更有效的方法来做到这一点,或者只是一般的建议?
编程语言是Objective-C,数据库是sqlite3,平台是iPhone/iPad/iPodTouch
谢谢,Dwaine