2011-11-29 96 views
0

我在VB 2008中编码将数百万条记录快速插入数据库和搜索

假设我以某种方式拥有数百万个字符串。 这些必须在数据库中插入“一次”,只有一个表只有1列。 然后在某个时间点,我需要在数据库中搜索特定的字符串。

Q1。我怎样才能让插入更快?

它是一次性插入,即我只需要插入一次。无需更新。 我尝试将字符串集合分为五个,并使用5个线程同时插入数据。 [RAM和CPU使用率不关心条件]。但它仍然无效。 Q2302。我怎样才能更快地搜索?

现在,我只是查询数据库一样

select column1 from table1 where column1 like 'something' 

听说有更好的搜索技术。 你认为你可以建议在我的数据库中搜索最好的技术吗?

Q3。目前我正在使用ADODC。 [mdb文件]

我应该迁移到MySQL,SQLite什么的?

谢谢!

+1

你为什么使用LIKE?你打算支持通配符吗?你会做什么样的通配查询? –

+0

如果RDMBS(和SQL操作)可以处理它,更多的客户端(线程)只会更快;-)确保您只在最后提交ONCE。 – 2011-11-29 18:26:15

+0

如果一次性导入;为什么不使用Access导入功能? – xQbert

回答

4

Q1:您可以使用SqlBulkCopy类在一个表中插入大量数据。 Q2:确保您在搜索的列上有适当的索引。如果使用LIKE '%searchterm进行搜索(开头为%),则可以在使用全文搜索时提高搜索性能。

+0

是不是用于将批量数据从一个源复制到另一个源的SqlBulkCopy类?我想我应该提到用户提供了要插入的数据,并且通常不会成为源代码。谢谢回复! –

+1

您可以将所有输入的用户字符串放入DataTable中,并使用['WriteToServer(DataTable)'](http://msdn.microsoft.com/en-us/library/ex21zs8x.aspx)过载。或者你可以实现['IDataReader'](http://msdn.microsoft.com/en-us/library/system.data.idatareader.aspx)接口。 –

相关问题