n******e 发帖数: 50 | 1 我用MySQL, 感觉速度不够理想. 一共有两个table,
需要对其中一个作关于某长度为256的字符串字段
unique的添加, 直到几百万个记录. 数据库的好处是
可以帮我实现index, 但是为此不得不不停的跟mysqld
通信, insert into ..., 额外的开销实在太大了. 我
的程序的其他部分每秒中能产生30个单位输出, 包括将
30*10K的数据存到硬盘. 但是接上数据库以后, 每秒只
能存10个, 相当于几百次insert, 几十次select. 数据
库大了以后, 还会更慢. 我想能不能自己做个带索引的
记录文件呢? 有没有现成的可download的源码?
有经验的请指导. | xt 发帖数: 17532 | 2
你指望你写的东西比数据库里面现成的好?come on....
你可以考虑其它优化方法呀,比如对数据库本身的tuning.
【在 n******e 的大作中提到】 : 我用MySQL, 感觉速度不够理想. 一共有两个table, : 需要对其中一个作关于某长度为256的字符串字段 : unique的添加, 直到几百万个记录. 数据库的好处是 : 可以帮我实现index, 但是为此不得不不停的跟mysqld : 通信, insert into ..., 额外的开销实在太大了. 我 : 的程序的其他部分每秒中能产生30个单位输出, 包括将 : 30*10K的数据存到硬盘. 但是接上数据库以后, 每秒只 : 能存10个, 相当于几百次insert, 几十次select. 数据 : 库大了以后, 还会更慢. 我想能不能自己做个带索引的 : 记录文件呢? 有没有现成的可download的源码?
| n******e 发帖数: 50 | 3 不指望. 但是数据库太笨重. 每个query都必须用sql语句
提交, 是不是太浪费时间了? 而且涉及跟sqld的通信,
.... | s*k 发帖数: 144 | 4
Read classical book of Stevens, you can find
a chapter on dbm programming(or man dbm).
You can use sequential index on nearly
every unix platform.
If you use newer version linux, you also can
use B tree.
Good luck! :-)
【在 n******e 的大作中提到】 : 我用MySQL, 感觉速度不够理想. 一共有两个table, : 需要对其中一个作关于某长度为256的字符串字段 : unique的添加, 直到几百万个记录. 数据库的好处是 : 可以帮我实现index, 但是为此不得不不停的跟mysqld : 通信, insert into ..., 额外的开销实在太大了. 我 : 的程序的其他部分每秒中能产生30个单位输出, 包括将 : 30*10K的数据存到硬盘. 但是接上数据库以后, 每秒只 : 能存10个, 相当于几百次insert, 几十次select. 数据 : 库大了以后, 还会更慢. 我想能不能自己做个带索引的 : 记录文件呢? 有没有现成的可download的源码?
| n******e 发帖数: 50 | 5 stevens那个我知道. 但是他只能做demo.
他使用的是hashtalbe. 做不了大的.
【在 s*k 的大作中提到】 : : Read classical book of Stevens, you can find : a chapter on dbm programming(or man dbm). : You can use sequential index on nearly : every unix platform. : If you use newer version linux, you also can : use B tree. : Good luck! :-)
| xt 发帖数: 17532 | 6
现在的数据库索引主要有两种,一种是hashing, 一种是
B+ tree. hasing 比B+ tree稍微快点,但是出来的结果
没有排序,B+ tree出来的结果是排序的,因此我觉得可
能用得多点。这就是为什么index有clustered和unclustered
之分。大概还有的数据库允许user来规定index的数据结构,
这样的话,我认为对clustered index,最好用B+ tree;
对使用order by多的unclustered index,用B+,否则可以
选择Hash table.
Space本身不是问题。
【在 n******e 的大作中提到】 : stevens那个我知道. 但是他只能做demo. : 他使用的是hashtalbe. 做不了大的.
|
|