索引

Oracle之索引

寵の児 提交于 2020-12-07 03:32:04
以下知识主要来源于网络,为了方便查看而整理。主要参考: http://blog.itpub.net/7450001/viewspace-911115/ http://orange5458.iteye.com/blog/1165319 索引 索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查。建立索引是一项技术性要求高的工作。一般在数据库设计阶段的与数据库结构一道考虑。应用系统的性能直接与索引的合理直接有关。 索引的分类: 逻辑上: Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函数索引 Domain 域索引 物理上: Partitioned 分区索引 NonPartitioned 非分区索引 B-tree: Normal 正常型B树 Rever Key 反转型B树 Bitmap 位图索引 索引结构: 1. B-tree: 适合与大量的增、删、改(OLTP); 不能用包含OR操作符的查询; 适合高基数的列(唯一值多) 典型的树状结构; 每个结点都是数据块; 大多都是物理上一层、两层或三层不定,逻辑上三层; 叶子块数据是排序的,从左向右递增; 在分支块和根块中放的是索引的范围; 2. Bitmap: 适合与决策支持系统;

在pandas的unstack时报ValueError: duplicate entries 错误

…衆ロ難τιáo~ 提交于 2020-04-08 12:01:28
pandas是python中用于数据分析和处理的一个基于numpy的基本库工具,是从事python语言数据领域的一个基本入门工具,常见用途有: a提供高级的数据结构和相当丰富的数据操作API b提高了对复杂矩阵运算的效率(这里的矩阵,目前可简单视作Excel数据表,自己脑补一下) c提供了数据清洗和处理功能 d帮助数据挖掘挖掘分析 回归正题:代码如下(环境:anaconda3+python3) 运行代码时: pandas两个重要的数据结构:Series和DataFrame 对象方法unstack(): Series对象的API,用于将Series的数据类型转DataFrame类型,因为DataFrame提供的数据操作API远远多于Series。(Series视作一维,DataFrame视作高维数据,类比一维数组和高维度数组) 用unstack操作的数据必须唯一标识,而打印obj1如下: 存在重复,unstack不能唯一区分,故转换失败报错ValueError: Index contains duplicate entries, cannot reshape, 解决方式:修改字母索引名或者数字索引,只要能够唯一标识即可,如将重复的1改为2(这里不能为3)或改为字母 将层次索引的外层索引(这里指a,b,c)作为DataFrame的行索引,内层索引(1,2,3....)作为列索引

solr curl索引 CSV/Json/xml文件

老子叫甜甜 提交于 2020-04-08 08:27:06
  在windows系统中,用curl命令工具索引文件命令:   启动solr   在solr-6.6.0\bin的同级目录下的文件夹ImportData下要索引的文件.   1、索引 json文件     curl "http://localhost:8983/solr/mycore/update?commit=true" --data-binary @../ImportData/books.json -H "Content-type:application/json"        2、索引 csv文件     curl "http://localhost:8983/solr/mycore/update?commit=true" --data-binary @../ImportData/2017-07-07_info.csv -H "Content-type:application/csv"        3、索引 xml文件     curl "http://localhost:8983/solr/mycore/update?commit=true" --data-binary @../ImportData/hd.xml -H "Content-type:application/xml"        用curl貌似不能索引pdf文件     curl "http:/

solr 通过URL删除索引

こ雲淡風輕ζ 提交于 2020-04-08 06:50:21
使用:update 参数:stream.body=<delete><query>date:[2014-06-15T00:00:00Z TO *]</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true 直接用 url, 如: http://localhost:8080/solr/MyCollection/update?stream.body=<delete><query>date:[2014-06-15T00:00:00Z TO *]</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true 删除2014-06-15之后的索引数据 stream 相关参数还有: stream.file=(服务器本地文件), stream.url 分别指到你的删除文本, 这里是直接字符串内容用 stream.body 参数。 commit 参数是指提交,提交了才能看到删除效果。 删除指令有两种,一是:用 <id></id> 包装;二是:<query></query> 包装。 指令都很明显,一个是 id 值(是在 schema.xml 的 uniqueKey 所指字段的值,而不是索引内部的 docId);query 值是查询串,如

一文总结分析聚集索引、非聚集索引、覆盖索引的工作原理!

旧街凉风 提交于 2020-04-07 22:47:24
「 数据库 」和「 数据库索引 」这两个东西是在服务器端开发领域应用最为广泛的两个概念,熟练使用数据库和数据库索引是开发人员在行业内生存的必备技能。 使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界(我自己也还没有达到这层境界)。很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。 1、为什么要给表加上主键? 2、为什么加索引后会使查询变快? 3、为什么加索引后会使写入、修改、删除变慢? 4、什么情况下要同时在两个字段上建索引? 这些问题他们可能不一定能说出答案。知道这些问题的答案有什么好处呢?如果开发的应用使用的数据库表中只有1万条数据,那么了解与不了解真的没有差别, 然而, 如果开发的应用有几百上千万甚至亿级别的数据,那么不深入了解索引的原理, 写出来程序就根本跑不动,就好比如果给货车装个轿车的引擎,这货车还能拉的动货吗? 接下来就讲解一下上面提出的几个问题,希望对阅读者有帮助。 网上很多讲解索引的文章对索引的描述是这样的「索引就像书的目录, 通过书的目录就准确的定位到了书籍具体的内容」,这句话描述的非常正确, 但就像脱了裤子放屁,说了跟没说一样

mysql杂记

巧了我就是萌 提交于 2020-04-07 19:23:18
问题未明确: decimal float double 具体原理和应用 datetime等时间类型 复合索引的最左前缀原则原理还是不太懂啊,需要学习一下算法了 sql的执行级别type没有进行仔细的研究 记笔记 时间戳函数 字符串转unix时间戳 insert into t1 values(9876543.21, 9876543.12); unix时间戳转字符串 select FROM_UNIXTIME(1496215980); 主键索引 增加和删除主键索引 alter table user1 add primary key (uid); 指定字段为主键时,会自动加主键索引 alter table user1 drop primary key; 查询所有索引 show index from user1; 删除主键之前必须删除自增长 增加索引 唯一索引 添加唯一索引 alter table user2 add UNIQUE (uid);  索引名默认使用列名  指定字段为unique时,会自动加唯一索引 删除唯一索引(普通索引也用这个删除) 普通索引 alter table user3 add key(uid); 来源: https://www.cnblogs.com/gengsc/p/6924867.html

MongoDB 更新/删除/索引

柔情痞子 提交于 2020-04-07 17:11:12
一、更新 语法 db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } ) 参数说明: query : update的查询条件,类似sql update查询内where后面的。 update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的 upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。 multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。 writeConcern :可选,抛出异常的级别。 更新一个字段 db.col.insert({ title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }) 将标题为 MongoDB 教程

时势造英雄、仅此怀念伟大人(第十四周)

本秂侑毒 提交于 2020-04-07 14:34:20
一、 导入hellodb.sql生成数据库 1、打开数据库,然后使用mysql uroot -predhat打开数据库; 2、导入数据内容;rz导入hellodb_innodb数据库; 3、导入数据内容,数据库出现hellodb数据库; (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄; (2) 以ClassID为分组依据,显示每组的平均年龄; (3) 显示第2题中平均年龄大于30的分组及平均年龄; (4) 显示以L开头的名字的同学的信息; 二、数据库授权magedu用户,允许192.168.1.0/24网段可以连接mysql 测试 三、总结mysql常见的存储引擎以及特点。 MyISAM ①不支持事务 ②表级锁定 ③读写相互阻塞,写入不能读,读时不能写 ④只缓存索引 ⑤不支持外键约束 ⑥不支持聚簇索引 ⑦读取数据较快,占用资源较少 ,不支持MVCC(多版本并发控制机制)高并发 ⑧崩溃恢复性较差 ⑨MySQL5.5.5前默认的数据库引擎 ,查询速度快、存储空间小,原因是在磁盘上分成三个文件存储:.frm(存储表定义),.MYD(MYData,存储数据),.MYI(MYIndex,存储索引),SELECT COUNT() FROM TABLE时,避免了全表扫描。 1、MyISAM存储引擎适用场景 只读(或者写较少)、表较小(可以接受长时间进行修复操作)

手把手,教你用MaxCompute+OpenSearch搭建分布式搜索引擎

浪尽此生 提交于 2020-04-07 13:41:44
摘要: 最近,经常有客户咨询如何低成本搭建高性能的海量数据搜索引擎,比如实现公众号检索、影讯检索等等。由于客户的数据在阿里云上,所以希望找到云上解决方案。笔者开始调研一些云上产品,很多人向我推荐了OpenSearch,所以花了点时间好好研究了下,用过之后发现效果不错,自带分词、云数据库同步功能,在研究过程中也发现了一些问题,分享给大家。 背景 最近,经常有客户咨询如何低成本搭建高性能的海量数据搜索引擎,比如实现公众号检索、影讯检索等等。由于客户的数据在阿里云上,所以希望找到云上解决方案。笔者开始调研一些云上产品,很多人向我推荐了OpenSearch,所以花了点时间好好研究了下,用过之后发现效果不错,自带分词、云数据库同步功能,在研究过程中也发现了一些问题,分享给大家。 接下来,我们开始用阿里云MaxCompute(原名ODPS)和OpenSearch来搭建一个影讯检索的搜索引擎Demo,我有大约10GB数据,服务搭建只用了15分钟,数据同步建索引大概用1个小时。因为选择弹性计费,实验费用大概花了几十元。 先晒一下搜索效果,支持一些常用分词语法,而且OpenSearch自带了丰富的SDK和API,可以很方便的集成到线上业务。 实验架构图 搜索引擎架构在OpenSearch之上,是一个典型的分布式在线实时交互查询架构,无单点故障,高伸缩、高可用,免运维,低成本

Oracle Index 的三个问题

落爺英雄遲暮 提交于 2020-04-07 13:16:41
索引 ( Index ) 是常见的数据库对象,它的设置好坏、使用是否得当,极大地影响数据库应用程序和 Database 的性能。 1. 索引特点: 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 2. 索引不足: 第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 3. 应该建索引列的特点: 1)在经常需要搜索的列上,可以加快搜索的速度; 2)在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 3)在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; 4)在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的; 5)在经常需要排序的列上创建索引,因为索引已经排序