这几天项目逆转了,时间比较紧,博客也没能跟进,也希望大家明白。
好的,今天我们
分享指数mondb基本
操作。我们的日常开发不能回避
程序的
性能优化,但是程序的操作只不过是豆腐。
它也将花费50%的时间在R上,因为读操作对
用户非常敏感,而且坏的
处理将被吐出来,嗯。
从算法上讲,有5种经典查找
方法。具体来说,我们可以看到我的算法加快了系列,其中包括我们的索引
搜索的今天,如果你知道更多关于SQLServer。
索引查找能给我们带来什么样的性能改进。
我们先插入10W的数据,和上面的
图片说:
1:性能分析
功能(解释)
好,数据已成功插入。现在我们必须分析,我们必须有分析
工具。幸运的是,mondb给我们提供了一个关键词叫解释,那么我们如何使用它呢
也看看图片,注意这里的
名字字段不建立任何指标,在这里我的name10000名称
查询。
看看红色
区域,我们关心的有几个关键点。
光标:这里是BasicCursor。这
是什么意思这意味着查找是基于表扫描的,即
顺序搜索。真是太悲哀了。
nscanned:这里是10W,即数据库
浏览10w
文件,很可怕的,所以玩不能承受的话。
n:这是1,这是1份文件的最后申报单。
Millis:这是我们关心的最重要的事情。总共需要114毫秒。
二:建立一个索引(ensureindex)
查文件,这样一个简单的
设置10W有点114毫秒,是无法接受的,好的,那么我们该如何优化呢在mondb
我们带来了索引搜索,看看你能不能让我们的查询飙升…
这里我们使用ensureindex在名称建立索引。1:代表一个顺序按姓名,1:降序按姓名。
我的天啊,再看这些敏感的信息。
光标:这里是btreecursor
nscanned:我擦,数据库只浏览一个文件就OK了。
n:直接定位回来。
Millis:看看这个时间真的不敢相信,二杀。
通过这个例子,我们相信你对指数有感觉。
三:唯一索引
独特的索引可以
创建像SQLServer,和重复的钥匙无法插入,和使用的mondb是:
db.person.ensureindex({名字:1 },{独特:真})。
四:综合指数
有时,我们的查询不是单
条件的。它可能是多个条件,如
发现出生在1989-3-2名称的同学,杰克。然后,我们可以设置名称和生日组合,以加快查询。
正如你在上面看到的,我们都知道名字
不同于生日,索引也不同。不同的升序和降序会导致不同的索引。
然后我们可以使用getindexes看看指数是人集的生成。
在这一点上,我们必须好奇查询优化器是否会使用哪个查询作为操作,哈哈,或者看看效果图:
在完成上述图片之后,我们相信查询优化器将是我们的最佳选择,因为当我们进行查询时,查询优化器将使用我们的索引创建查询计划。
如果
执行完成,则
关闭其他查询计划。该方案将被mondb。如果您想使用自己的查询计划,这也是
正确的。
是的,我们已经为我们提供了在mondb暗示的方法使我们能够执行它猛烈地。
五:
删除索引
也许随着业务需求的变化,以前建立的指数可能不存在。也许有人要说,这是不必要的说,但要记住,指数将减少反刍三。
种子操作的性能,因为这件事需要实时
维护,所以所有的问题都必须综合考虑。在这里,我们只是空的指标我们刚刚建成的展示dropindexes使用。