|
楼主 |
发表于 2009-8-19 11:40:55
|
显示全部楼层
下面是遍历
下面是遍历,速度非常的快,我存几万条简单的记录基本上是瞬间完成- int main(int argc,char *argv[])
- {
- DB_ENV *dbenv;
- int ret = db_env_create(&dbenv, 0);
- dbenv->set_cachesize(dbenv, 0, 5 * 1024 * 1024, 0);
- ret = dbenv->open(dbenv, "d:\\test\", DB_CREATE|DB_INIT_LOG| DB_INIT_MPOOL, 0);
- {
- DB *dbp1=NULL;
- ret = db_create(&dbp1, dbenv, 0);
- int flags = DB_CREATE;
- ret = dbp1->open(dbp1, NULL, "kingstock.db", "test1", DB_BTREE, flags, 0);
- DBC *cursorp;
- DBT key, data;
- dbp1->cursor(dbp1, NULL, &cursorp, 0);
- memset(&key, 0, sizeof(DBT));
- memset(&data, 0, sizeof(DBT));
- while ((ret = cursorp->get(cursorp, &key, &data, DB_NEXT)) == 0)
- {
- int *pkey=(int *)key.data;
- printf("Table 1:%d\n",*pkey);
- }
- cursorp->close(cursorp);
- dbp1->close(dbp1,0);
- }
- {
- DB *dbp2=NULL;
- ret = db_create(&dbp2, dbenv, 0);
- int flags = DB_CREATE;
- ret = dbp2->open(dbp2, NULL, "kingstock.db", "test2", DB_BTREE, flags, 0);
- DBC *cursorp;
- DBT key, data;
- dbp2->cursor(dbp2, NULL, &cursorp, 0);
- memset(&key, 0, sizeof(DBT));
- memset(&data, 0, sizeof(DBT));
- while ((ret = cursorp->get(cursorp, &key, &data, DB_NEXT)) == 0)
- {
- int *pkey=(int *)key.data;
- printf("Table 1:%d\n",*pkey);
- }
- cursorp->close(cursorp);
- dbp2->close(dbp2,0);
- }
- dbenv->close(dbenv,0);
- return 0;
- }
复制代码 |
|