西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > 开发教程 > JavaScript教程 >

Mindex小而快的 JavaScript 复合索引

时间:2016-03-29 22:34来源:未知 作者:好模板 点击:
Mindex 是个小而快的 JavaScript 复合索引,灵感来源于 LokiJS。 Mindex 可以帮助用户在集合中查找对象,Mindex 可以迅速的搜索大型数据数组,可以返回数据的范围,还会对结果进行排序。M

Mindex 是个小而快的 JavaScript 复合索引,灵感来源于 LokiJS。

Mindex 可以帮助用户在集合中查找对象,Mindex 可以迅速的搜索大型数据数组,可以返回数据的范围,还会对结果进行排序。Mindex 使用非常直观的查询语法,支持skip 和 offset ,可以迅速对结果进行分页。

Mindex 使得信息查找变得非常快速。

特性

  • 小 – 少于 300 行代码
  • 快 – 可以在 O(log n) 时间内找到结果
  • 强 – 支持复合关键字和简单查询语法

使用 5 万条数据库数据进行基准测试,插入会比较慢,但是其他方面都有压倒性的优势:

***********************
Mindex 性能测试
***********************

Testing insertRecord(record)

Mindex 16.80 ops/sec, Native Array 45.51 ops/sec
Mindex is 63% slower


Testing get(key)

Mindex 3485998.20 ops/sec, Native Array 642.11 ops/sec
Mindex is 542799% faster


Testing getAll(), get all records

Mindex 374.92 ops/sec, Native Array 14.41 ops/sec
Mindex is 2502% faster


Testing removeRecord(key, value)

Mindex 1955971.50 ops/sec, Native Array 220.43 ops/sec
Mindex is 887260% faster

安装:Mindex 支持 Node v4.0+

npm install --save mindex

示例:

var Mindex = require('mindex')

var index = Mindex(['age'])

index.insertRecord({
  id: 'John',
  age: 25
})
index.insertRecord({
  id: 'Darcy',
  age: 28
})
index.insertRecord({
  id: 'Jim',
  age: 29
})
index.insertRecord({
  id: 'Betty',
  age: 25
})

// Get IDs by key
console.log(index.get(25)) // [ 'Betty', 'John' ]

// Get all IDs sorted by key (age)
console.log(index.getAll()) // [ 'Betty', 'John', 'Darcy', 'Jim' ]

// Get all IDs within a given range
console.log(index.query({'>': [22], '<': [29]})) // [ 'Betty', 'John', 'Darcy' ]
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容