我的contacts
表填充了50k记录,因此我可以对性能进行基准测试。
引起我注意的是,这些查询需要大致同时完成:
查询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
aproximatelly。
我当然希望查询1 运行得更快,因为我已经读过主要索引被自动考虑在内。我还读到 id 会自动作为主键。而且,我没有找到配置主键的任何选项。
我做错了还是预期?
修改
感谢@mlucy回答,我现在可以在13ms
给出相同配置的结果。
答案 0 :(得分:2)
您可以使用get
或getAll
访问主索引。因此,如果您将第一个查询重写为r.db('rethinkdb_faker').table('contacts').get(3453)
,它应该会快得多。