我用50k条记录填充了我的contacts
表,这样我就可以对性能进行基准测试。
引起我注意的是,这些查询几乎花费相同的时间来完成:
查询1:r.db('rethinkdb_faker').table('contacts').filter({"id":3453}).limit(1)
查询2:r.db('rethinkdb_faker').table('contacts').filter({"name":"contact3453"}).limit(1)
它们在I5 1.7ghz Ubuntu服务器上完成大约需要160ms
。
我肯定希望查询1运行得更快,因为我已经读到主索引被自动考虑在内。我还了解到id被自动作为主键。而且,我没有找到任何配置主键的选项。
是我做错了什么还是这是预期的?
编辑
感谢@mlucy的回答,我现在可以在13ms
给出相同的配置的结果。
您可以使用get
或getAll
访问主索引。所以,如果你重写你的第一个查询是r.db('rethinkdb_faker').table('contacts').get(3453)
,它应该快得多。