将数百万条记录快速插入数据库和搜索
我在VB 2008中编码将数百万条记录快速插入数据库和搜索
假设我以某种方式拥有数百万个字符串。 这些必须在数据库中插入“一次”,只有一个表只有1列。 然后在某个时间点,我需要在数据库中搜索特定的字符串。
Q1。我怎样才能让插入更快?
它是一次性插入,即我只需要插入一次。无需更新。 我尝试将字符串集合分为五个,并使用5个线程同时插入数据。 [RAM和CPU使用率不关心条件]。但它仍然无效。 Q2302。我怎样才能更快地搜索?
现在,我只是查询数据库一样
select column1 from table1 where column1 like 'something'
听说有更好的搜索技术。 你认为你可以建议在我的数据库中搜索最好的技术吗?
Q3。目前我正在使用ADODC。 [mdb文件]
我应该迁移到MySQL,SQLite什么的?
谢谢!
Q1:您可以使用SqlBulkCopy
类在一个表中插入大量数据。 Q2:确保您在搜索的列上有适当的索引。如果使用LIKE '%searchterm
进行搜索(开头为%
),则可以在使用全文搜索时提高搜索性能。
是不是用于将批量数据从一个源复制到另一个源的SqlBulkCopy类?我想我应该提到用户提供了要插入的数据,并且通常不会成为源代码。谢谢回复! –
您可以将所有输入的用户字符串放入DataTable中,并使用['WriteToServer(DataTable)'](http://msdn.microsoft.com/en-us/library/ex21zs8x.aspx)过载。或者你可以实现['IDataReader'](http://msdn.microsoft.com/en-us/library/system.data.idatareader.aspx)接口。 –
你为什么使用LIKE?你打算支持通配符吗?你会做什么样的通配查询? –
如果RDMBS(和SQL操作)可以处理它,更多的客户端(线程)只会更快;-)确保您只在最后提交ONCE。 – 2011-11-29 18:26:15
如果一次性导入;为什么不使用Access导入功能? – xQbert