一、索引基础:
MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令:
> db.test.ensureIndex({"username":1})
> db.test.getIndexes()
> db.test.dropIndex({"username":1})
-- 数字1表示username键的索引按升序存储,-1表示age键的索引按照降序方式存储。 > db.test.ensureIndex({"username":1, "age":-1})
> db.test.find({"age": 30, "username": "stephen"})
> db.test.ensureIndex({"comments.date":1})
> db.test.ensureIndex({"username":1},{"name":"testindex"})
> db.test.ensureIndex({"userid":1},{"unique":true})
> db.test.insert({"userid":5}) > db.test.insert({"userid":5}) E11000 duplicate key error index: test.test.$userid_1 dup key: { : 5.0 }
> db.test.insert({"userid1":5}) > db.test.insert({"userid1":5}) E11000 duplicate key error index: test.test.$userid_1 dup key: { : null }
> db.test.dropIndex({"userid":1}) --插入测试数据,以保证集合中有重复键存在。 > db.test.remove() > db.test.insert({"userid":5}) > db.test.insert({"userid":5}) --创建唯一索引,并消除重复数据。 > db.test.ensureIndex({"userid":1},{"unique":true,"dropDups":true}) --查询结果确认,重复的键确实在创建索引时已经被删除。 > db.test.find() { "_id" : ObjectId("4fe823c180144abd15acd52e"), "userid" : 5 }
> db.test.ensureIndex({"userid":1,"age":1},{"unique":true})
三、使用explain:
explain是非常有用的工具,会帮助你获得查询方面诸多有用的信息。只要对游标调用该方法,就可以得到查询细节。explain会返回一个文档,而不是游标本身。如:
> db.test.find().explain() { "cursor" : "BasicCursor", "nscanned" : 1, "nscannedObjects" : 1, "n" : 1, "millis" : 0, "nYields" : 0, "nChunkSkips" : 0, "isMultiKey" : false, "indexOnly" : false, "indexBounds" : {} }
system.indexes集合中包含了每个索引的详细信息,因此可以通过下面的命令查询已经存在的索引,如:
> db.system.indexes.find()
> db.test.ensureIndex({"username":1},{"background":true})
本文向大家介绍MongoDB入门教程之索引操作浅析,包括了MongoDB入门教程之索引操作浅析的使用技巧和注意事项,需要的朋友参考一下 这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅。 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又会花费50%的时间在R上面,因为Read操作对用
本文向大家介绍MySQL索引之聚集索引介绍,包括了MySQL索引之聚集索引介绍的使用技巧和注意事项,需要的朋友参考一下 在MySQL里,聚集索引和非聚集索引分别是什么意思,有什么区别? 在MySQL中,InnoDB引擎表是(聚集)索引组织表(clustered index organize table),而MyISAM引擎表则是堆组织表(heap organize table)。 也有人把聚集索引
本文向大家介绍MongoDB系列教程(二):MongoDB简介,包括了MongoDB系列教程(二):MongoDB简介的使用技巧和注意事项,需要的朋友参考一下 MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常的松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。
本文向大家介绍MongoDB入门教程之聚合和游标操作介绍,包括了MongoDB入门教程之聚合和游标操作介绍的使用技巧和注意事项,需要的朋友参考一下 今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标。 一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce。 <1> count cou
主要内容:createIndex() 方法,dropIndex() 方法,dropIndexes() 方法,getIndexes() 方法索引是特殊的数据结构,存储在一个方便遍历和读取的数据集合中。索引在任何数据库中都非常重要,通过使用索引,可以大大提高查询语句的执行效率。 举个简单的例子,假如您有一个集合,其中包含了数千甚至上万个没有索引的文档,当我们在集合中查找某个文档时,MongoDB 需要扫描整个集合来寻找所需的文档,这种扫描效率极低,特别是在处理大量的数据时,可能需要花费几十秒甚至几分
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。 PHPCMS V9支持这一技术,当然我们需要事先在服务器上做一些相应的部署 英文介绍