首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏MongoDB中文社区

    索引系列:2dsphere索引

    No 2 版本变更 2dsphere索引版本 版本 3 MongoDB 3.2 引入了 2dsphere索引的版本3。 对于包含2dsphere索引键以及其他类型键的复合索引,该索引是否引用文档只取决于2dsphere索引字段。 MongoDB的早期版本仅支持2dsphere (Version 1)索引。 这使得geoNear在具有多个2dsphere索引或多个2d索引的文档中也能被使用: 如果您的集合具有多个2dsphere索引或多个2d索引,则必须使用key选项来指定使用哪个索引字段路径。 如果未指定key,您将无法使用多个2dsphere索引或多个2d索引。因为没有指定key时,在多个2d索引2dsphere索引中选择索引将变得无法明确。 敲黑板!!! 如果您不指定key,您将最多只能拥有一个2dsphere索引或一个2dsphere索引,MongoDB首先寻找2d索引。如果不存在2d索引,则MongoDB会寻找2dsphere索引

    3.5K10发布于 2020-05-11
  • 来自专栏Hank’s Blog

    (2)Python索引和切片

    1K20发布于 2020-09-16
  • 来自专栏逸鹏说道

    维护索引2)——填充因子

    前言: 在第九章中,已经介绍了如何使用索引,当一个索引创建时,以B-Tree格式存放数据,拥有根节点、中间节点、叶子节点。 比如有一个聚集索引在SSN上,当插入一个新的SSN数时。 SQLServer会尝试把数据插入到合适的数据页,假设SSN从2开始,此时在最后的数据页中找到这个页面是以SSN开始的,SQLServer将会仅仅在这个页中插入新行。 填充因子仅仅在创建或重建一个索引时有影响,在日常的DML操作中,页依然会100%填满。 , type_desc , fill_factor FROM sys.indexes WHERE type_desc <> 'HEAP' 2

    1.1K60发布于 2018-04-11
  • 来自专栏全栈程序员必看

    mysql索引abc,a=1 and c=2是否可使用索引_sql联合索引

    若表中索引过多,会影响INSERT及UPDATE性能,简单说就是会影响数据写入性能。因为更新数据的同时,也要同时更新索引。 最实际的好处当然是查询速度快,性能好。 ) … 建索引参考的原则 : 一个表有3列 ,a,b,c 说出3种索引,能够在查询的时候用到 a,b,c,bc,ac,abc . abc (a,bc,abc) bc (c,bc) ca (c) 用 查询 bc 的时候用不到abc和ac 索引。 使用联合索引应该注意: MySQL使用联合索引只能使用左侧的部分,例如INDEX(a,b,c),当条件为a或a,b或a,b,c时都可以使用索引,但是当条件为b,c时将不会使用索引。 离散度更高的索引应该放在联合索引的前面,因为离散度高索引的可选择性高。考虑一种极端的情况,数据表中有100条记录,若INDEX(a,b)中a只有两种情况,而b有100种情况。

    2.1K10编辑于 2022-10-04
  • 来自专栏程序猿杂货铺

    【MySQL(2)| MySQL索引机制】

    什么是索引索引是存储引擎用于快速找到记录数据行的一种分散存储的数据结构。 索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。 哈希索引的应用场景 根据本人的理解,这种直接通过哈希索引的存储引擎,因为索引自身只需要存储对应的哈希值,所以索引的结构十分紧凑,这会让哈希索引查找的速度非常快 哈希索引的一些限制 哈希索引只包含哈希值和行指针 哈希索引数据并不是按照索引列的值顺序存储的,所以也就无法用于排序 哈希索引也不支持部分索引列匹配查找,因为哈希索引始终是使用索引的全部列值内容来计算哈希值的。 (1)由于是m分叉的,高度能够大大降低; (2)每个节点可以存储j个记录,如果将节点大小设置为页大小,例如4K,能够充分的利用预读的特性,极大减少磁盘IO; 注意:高度降低的原因在于: 在利用了局部性原理前提下 ,我们把一个节点的大小设为一页,一页4K,假设一个KEY有8byte,一个节点可以存储500个KEY,即j=500 m叉树,大概m/2<= j <=m,即可以差不多是1000叉树 一层树:1个节点,1*

    1.3K20发布于 2019-09-03
  • 来自专栏vivo互联网技术

    【干货】Elasticsearch索引性能优化 (2)

    Elasticsearch索引性能优化 (2) 本文翻译自QBox官方博客的“Elasticsearch索引性能优化”系列文章中的第二篇,版权归原作者所有。 curl -XPOST 'localhost:9200/my_index/_refresh' 2 段与合并 段合并是一个计算开销较大的操作,而且会消耗大量的磁盘I/O。 "indices.store.throttle.type" : "merge" } }' 注意:上面的设置只适用于Elasticsearch 1.X版本,Elasticsearch 2. 机械介质在并发I/O方面有较大的时间开销,因此需要减少线程数,以便能按索引并发访问磁盘。该设置允许每次有max_thread_count + 2个线程操作磁盘,所以设置为1表示支持3个线程。 index.translog.interval - 检查是否需要flush的时间间隔,随机在该时间到2倍之间取值,默认为5秒。

    1.4K30发布于 2019-03-19
  • 来自专栏vivo互联网技术

    【干货】Elasticsearch索引性能优化 (2)

    Elasticsearch索引性能优化 (2) 本文翻译自QBox官方博客的“Elasticsearch索引性能优化”系列文章中的第二篇,版权归原作者所有。 curl -XPOST 'localhost:9200/my_index/_refresh' 2 段与合并 段合并是一个计算开销较大的操作,而且会消耗大量的磁盘I/O。 "indices.store.throttle.type" : "merge" } }' 注意:上面的设置只适用于Elasticsearch 1.X版本,Elasticsearch 2. 机械介质在并发I/O方面有较大的时间开销,因此需要减少线程数,以便能按索引并发访问磁盘。该设置允许每次有max_thread_count + 2个线程操作磁盘,所以设置为1表示支持3个线程。 index.translog.interval - 检查是否需要flush的时间间隔,随机在该时间到2倍之间取值,默认为5秒。

    83140发布于 2019-04-19
  • 来自专栏java学习java

    索引的数据结构(2

    常见索引概念 索引按照物理实现方式,索引可以分为 2 种:聚簇(聚集)和非聚簇(非聚集)索引。我们也把非聚集 索引称为二级索引或者辅助索引。 1. 聚簇索引 特点: 1. 二级索引(辅助索引、非聚簇索引) 概念:回表 我们根据这个以c2列大小排序的B+树只能确定我们要查找记录的主键值,所以如果我们想根 据c2列的值查找到完整的用户记录的话,仍然需要到 聚簇索引 中再查一遍 在记录的c2列相同的情况下,采用c3列进行排序 注意一点,以c2和c3列的大小为排序规则建立的B+树称为 联合索引 ,本质上也是一个二级索引。 为c2和c3列分别建立索引会分别以c2和c3列的大小为排序规则建立2棵B+树。 3.4 InnoDB的B+树索引的注意事项  1. 根页面位置万年不动 2. 内节点中目录项记录的唯一性 3. 如果我们在Col2上建立一个二级索引,则此  如果我们在Col2上建立一个二级索引,则此索引的结构如下图所示: MyISAM 与 InnoDB对比   MyISAM的索引方式都是“非聚簇”的,与InnoDB

    74340编辑于 2022-11-15
  • 来自专栏用户7873631的专栏

    dom啦 循环索引同步2

    DOCTYPE html> <html> <head> <title></title> </head> <body> <button>我是按钮1</button> <button>我是按钮2</button ) { console.log(i); } list.push(fn); } list[0](); list[1](); list[2] ) { console.log(i); } list.push(fn); } list[0](); list[1](); list[2]

    45240发布于 2020-10-28
  • 来自专栏学习有记

    深入非聚集索引:SQL Server索引进阶 Level 2

    C Guo shannon16@adventure-works.com 1106 John Y Chen john2@ 索引条目的优点是在顺序 索引的条目按索引键值进行排序,所以SQL Server可以在任一方向上快速遍历条目。 顺序条目的扫描可以从索引的开始,索引的结尾或索引内的任何条目开始。 Merrill 1 Steele Joan 1 Steele Laura 2 Steelman Shanay 1 Steen Heidi 2 Stefani Stefano 下载代码 NonClustered.SQL Resources: Level 2 - NonClustered.sql | Level2_MillionRowContactTable.sql ----

    2.5K30发布于 2018-07-19
  • 来自专栏java学习java

    索引的创建与设计原则(2)(适合创建索引情况 )

    VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 第2步 RAND()*52),1));       SET i = i + 1;    END WHILE;    RETURN return_str; END // DELIMITER ; #函数2: 10000,10100),rand_string(6));   UNTIL i = max_num   END REPEAT;   COMMIT;  #提交事务 END // DELIMITER ; # 存储过程2: (来源:Alibaba) 说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的。  2. 在多个字段都要创建索引的情况下,联合索引优于单值索引

    80341编辑于 2022-11-15
  • 来自专栏「3306 Pai」社区

    新特性解读 | MySQL 8.0 索引特性2-索引跳跃扫描

    *考虑以下的场景: 表t1有一个联合索引idx_u1(rank1,rank2),但是查询的时候却没有rank1这列,只有rank2。 比如,select * from t1 where rank2 = 30。 那以前遇到这样的情况,如果没有针对rank2这列单独建立普通索引,这条SQL怎么着都是走的FULL TABLE SCAN。 ISS 可以在查询过滤组合索引不包括最左列的情况下,走索引扫描,而不必要单独建立额外的索引。因为毕竟额外的索引对写开销很大,能省则省。 rank2 > 400union allselect * from t1 where rank1 = 5 and rank2 > 400; 可以看出来,MySQL其实内部自己把左边的列做了一次DISTINCT 那这样的场景就必须给rank2加一个单独索引了。 ? 那来总结下 ISS 就是一句话:ISS 其实就是MySQL 8.0推出的适合联合索引左边列唯一值较少的情况的一种优化策略。

    2.7K20发布于 2019-05-28
  • 来自专栏源码之路

    「Mysql索引原理(十三)」索引案例2-避免多个范围条件

    age列索引,但无法同时使用它们。 所以这个查询条件没法使用任何索引,但因为这个条件的过滤性不高,即使在索引中加入该列也没有太大的帮助。换个角度来说,缺乏合适的索引对该查询的影响也不明显。 我们已经加入了很多这样的列表,但另外一个可选的方案就只能是为不同的组合列创建单独的索引。 这些索引对某个具体的查询来说可能都是更优化的,但是考虑到索引的维护和额外的空间占用的代价,这个可选方案就不是一个好策略了。 在这个案例中,优化器的特性是影响索引策略的一个很重要的因素。 如果未来版本的MySQL能够实现松散索引扫描,就能在一个索引上使用多个范围条件,那也就不需要为上面考虑的这类查询使用IN()列表了。

    2.2K20发布于 2020-09-04
  • 来自专栏大数据学习笔记

    Elasticsearch 7.x:2索引管理

    2索引名不能包含大些字母 PUT Blog 相应结果: { "error": { "root_cause": [ { "type": "invalid_index_name_exception 2 } } 也就是说,不必在settings部分中明确指定索引部分。 (1)关闭blog POST blog/_close 相应结果: { "acknowledged" : true } (2)查看索引 GET /_cat/indices? (1)创建多个索引 PUT index1 PUT index22)创建index1的别名alias1 POST _aliases { "actions": [ { "add" (3)添加多个索引的别名 POST _aliases { "actions": [ { "add": { "indices": ["index2","test"]

    3K40发布于 2019-05-27
  • 来自专栏小工匠聊架构

    MySQL-索引优化篇(2)_使用索引扫描来优化排序

    ---- 使用索引扫描来优化排序 存储引擎: Innodb 重点: 优化排序 手段:利用索引 两个思路: 1 通过排序操作 、 2 按照索引顺序扫描数据 ---- 索引的列顺序和Order By子句的顺序完全一致 看下 type: index ---- 索引中所有列的方向(升序、降序)和 order by子句完全相同 ? 我们知道,字段的默认是 ase 升序排列的。 如果order by 都使用升序的 using index condition:5.6加入 ,会先条件过滤索引,过滤完索引后找到所有符合索引条件的数据行,随后用 WHERE 子句中的其他条件去过滤这些数据行 ---- 看下索引情况 ? 最左侧的索引 rental_date 使用范围查询 来验证下 ? 结论: 如果查询中有某个列的范围查询,则其右边所有列都无法使用索引 ---- order by中的字段全部在关联表中的第一张表中

    95670发布于 2021-08-17
  • 来自专栏用户7873631的专栏

    dom啦 循环索引同步练习2

    DOCTYPE html> <html> <head> <title></title> </head> <body> <button>我是按钮1</button> <button>我是按钮2</button </button> <script type="text/javascript"> /* // 在ES6中 // 1.for循环中通过let定义的变量是一个局部变量 // 2.

    38010发布于 2020-10-28
  • 来自专栏孔德雨的专栏

    Mongodb Geo2d索引原理

    ongoDB的geo索引是其一大特色,本文从原理层面讲述geo索引中的2d索引的实现。 2d 索引的创建与使用 通过 db.coll.createIndex({"lag":"2d"}, {"bits":int})) 来创建一个2d索引索引的精度通过bits来指定,bits越大,索引的精度就越高 ,其中spherical:true|false 表示应该如何理解创建的2d索引,false表示将索引理解为平面2d索引,true表示将索引理解为球面经纬度索引。 这一点比较有意思,一个2d索引可以表达两种含义,而不同的含义是在查询时被理解的,而不是在索引创建时。 2d索引的默认精度是长宽各为26,索引把地球分为(2^26)(2^26)块,每一块的边长估算为 2*PI*6371000/(1<<26) = 0.57 米 mongodb的官网上说的60cm的精度就是这么估算出来的

    3.5K00发布于 2017-04-01
  • 来自专栏该溜子的专栏

    【从0做项目】Java搜索引擎(2)图解索引结构

    文章导读 阿华将发布项目复盘系列的文章,旨在: 1:手把手细致带大家从0到1做一个完整的项目,保证每2~3行代码都有详细的注解 2:通过文字+画图的方式,对项目进行整个复盘,更好的理解以及优化项目 3: <Weight>> invertedIndex = new HashMap<>(); 2:添加文档 新增一个文档的时候,正排和倒排索引都要更新 ​ //3:新增文档 public void addDoc DocInfo docInfo = buildForward(title,url,content); //2:构建倒排索引 buildInverted(docInfo); forwardIndex.add(docInfo); } return docInfo; } (2)往倒排索引中添加 实现buildInverted (docId);//docId就对应集合中元素的下标 } 4:根据词返回Weight集合 给一个词,从倒排索引中获取一堆Weight对象 //2:在倒排索引中,查询哪些文档和这个词相关联

    39900编辑于 2025-02-16
  • 来自专栏大猪的笔记

    信息检索:布尔检索-建立倒排索引(2)

    倒排索引 倒排索引用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。 为每个单词都进行类似处理,最终获得的结果,就叫倒排索引。 左边的所有单词项,称之为词典,而每个词典项(如'hello'),指向一个倒排记录表(如[1,3]) 建立过程 通过以下的步骤,可以为文档集建立倒排索引 获取每个文档的单词表(代码 give_word_list 倒排索引至此已完全建立。 搜索 依照前文,我们已经可以求两个集合的交集并集,有了倒排索引,就能进行布尔查询。 例如,要求文档集中包含"i"和"can"的文档号。可进行如下操作: 1. 取出 i 的倒排记录表:['1', '2', '3'] 2. 取出 can 的倒排记录表:['2', '3'] 3. 对这两个集合求交集 4.

    1.7K20发布于 2019-11-21
  • 来自专栏分享/效率/工具/软件

    geohash之2d 地理空间索引

    个人博客:https://suveng.github.io/blog/​​​​​​​ 2d 地理空间索引 概述 2D地理空间索引可以将文档与二维空间中的位置(例如地图上的点)相关联。 2d索引的默认范围为经度和纬度,并使用边界值-180(含180)和180(不含)。 重要 2d索引的默认边界允许应用程序插入无效纬度大于90或小于-90的文档。 在创建2d索引时,MongoDB提供了以下选项: 位置范围 所有2d地理空间索引都有由坐标范围定义的边界。 默认情况下,地理空间索引使用26位精度,大致相当于使用默认范围-180至180的2英尺或大约60厘米的精度。您可以配置2d 地理空间索引,精度高达32位。 尽管2d索引不支持文档中的多个坐标集,但您可以使用多键索引来将多个坐标对存储并索引到单个文档中。

    3.4K40发布于 2019-09-17
领券