上mongodb创建一些吸取的经验教训指数

想来接触mongodb它已经快一年了,对于其指数已经积累了很多的经验,知识,以这个夜黑风高的优势,放mongodb总结一番吧。 一,索引介绍 mongodb具有两类索引,分别为单键索引和复合索引。 1.单键索引是最简单的一种索引。创建单键索引的开销要比复合索引小非常多。单键索引主要用于针对单值查询的条件。 2.复合索引是将文档中的几个键联合起来创建的一种索引,创建这样的索引须要很多其它的空间与性能开销。分别体如今: 1).在给大量数据创建复合索引时。会堵塞数据库的查询,更不用说改动和插入操作了; 2).插入一条数据时,要花费很多其它的时间来给复合索引加数据; 3).创建的复合索引所站得空间大小依据数据的类型以及键的数量而有所不同。比方,假设你用五个NumberInt的键创建的复合索引的空间大小,并不会比两个NumberInt和一个String类型创建的复合索引占用很多其它的空间。索引在设计数据类型时,尽量将数据类型设置为NumberInt类型,以及尽量少使用string类型的数据做索引。 二,创建索引 创建索引的语句非常easy。 1.单键索引的创建:db.test.ensureIndex({name:1},{name:’index_name’}) 2.复合索引的创建:db.test.ensureIndex({name:1,age:1,sex:1},{name:’index_nas’}) 三。索引优化 索引的优化是一个重头戏。须要具体的来解释。我得測试数据插入了100万条。 字段分别为name,sex,type,time,id 1.我们来看一个简单的查询:db.test.find({name:’name_1′})  相信大家对这个查询已经非常熟悉了。然后我们来看看这个语句的索引运行计划: {"cursor" : "BasicCursor",   查询语句所用到的索引。而BasicCursor代表没有索引"isMultiKey" : false,     是否为复合索引"n" : 1,       查询到的结果数"nscannedObjects" : 1000000,    扫描的文档数量"nscanned" : 1000000,     扫面的索引数量"nscannedObjectsAllPlans" : 1000000,   //影响的全部的被扫描文档的总数量"nscannedAllPlans" : 1000000,      //全部被扫描的索引的总数量"scanAndOrder" : false,  是否排序"indexOnly" : false,"nYields" : 2,"nChunkSkips" : 0,"millis" : 342,   花费的时间"indexBounds" : {},"server" : "node1:27017"}…

openstackM版本常见问题汇总

汇总下常见的问题以及解释下一些比较容易让人萌的参数配置等等 问题汇总1.使用纯文本模式进行复制粘贴,打死不要用word!!!可以解决绝大多数问题,如果你依然执迷不悟,那么就好自为之吧 2.创建路由器时报错:路由XXXXX被创建,但是连接到外部网络失败。检查各个节点/var/lib/neutron/tmp目录权限是否是neutron的,如果不是,删除该目录,然后再次创建路由即可 3.ASCII报错。请看第一条 4.keystone/glance/nova/neutron验证时报500错误。请看第一条 5.同步数据库后未生成相对应的table。(以keystone为例子)由于配置文件中database的连接设置为connection = mysql+pymysql://keystone:bfmq@controller01/keystone,因此必须保证keystone@controller01该用户的权限,其实原本已经设置过keystone@%跟keystone@localhost用户,但是对本机不会生效,应该是数据库的问题 6.数据库无法正常开启。检查/etc/my.cnf.d/openstack.cnf内容,不要有多余的东西,然后请看第一条 7.rabbitmq创建用户失败。该用户名已经被使用,换一个即可 8.httpd无法正常开启,5000端口已被占用。确认是否关闭了selinux,仅仅修改配置文件在此次操作是不生效的,需要手动setenforce 0一下,还有确认firewalld关闭,iptables无规则 9.chrony后时间不同步。chrony有延迟,需要一点时间去同步,建议直接date -s XXXXXX设置 10.nova验证时没有出现计算节点信息。确认控制节点跟计算节点/etc/nova/nova.conf内[DEFAULT]下ip是否为本机管理ip,[oslo_messaging_rabbit]下rabbitmq用户信息是否正确 11.计算节点是否支持虚拟化。egrep -c…