索引

ElasticSearch简单使用

梦想与她 提交于 2020-02-24 12:46:24
ES官方文档中文版: Elasticsearch: 权威指南 | Elastic Elasticsearch是面向文档的,意味着它存储整个对象或文档。Elasticsearch 不仅存储文档,而且索引每个文档的内容,使之可以被检索。在Elasticsearch中,我们对文档进行索引、检索、排序和过滤,而不是对行列数据。这是一种完全不同的思考数据的方式,也是 Elasticsearch 能支持复杂全文检索的原因。 docker es限制内存启动命令: docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 使用Postman向ES发送put请求进行文档的存储/更新: https://ip:9200/索引/类别/文档 使用Postman向ES发送get请求进行文档的获取: https://ip:9200/索引/类别/文档 使用Postman向ES发送head请求进行文档是否存在,200存在,404不存在: https://ip:9200/索引/类别/文档 使用Postman向ES发送delete请求进行文档的删除: https://ip:9200/索引/类别/文档 查询所有文档所有 get方法: https://ip:9200/索引/类别/_search 查询满足条件的文档 get方法:

索引

久未见 提交于 2020-02-24 08:48:50
概念 索引是对数据库表中一列或者多列的值进行排序的一种结构,使用索引可以快速访问表中特定信息。 创建索引 #创建普通索引 #ALTER TABLE gg ADD INDEX common_index (id); #创建唯一索引(允许多个null) ALTER TABLE gg ADD UNIQUE common_index2 (login_name); #创建主键包含唯一索引 ALTER TABLE gg ADD PRIMARY KEY pri_index (id); 查询索引 show index from gg 删除索引 DROP INDEX common_index2 on gg; 分类 唯一索引。不允许有重复值 普通索引。 fulltext索引。用来进行全文检索,只适用于myisam存储引擎 apatial索引。只适用于myisam和空间(apatial)数据类型 hash索引。memory默认索引。如果打算对memory数据表进行范围查询,则最好是建立一个前缀索引。 或者 主键索引 唯一索引 普通索引 联合索引 覆盖索引 索引结构 B+树结构 非叶子节点至存储key,同一层的叶子节点存储数据(减少内存)。叶子之间增加了链表,使得范围查询速度加快(比B书最大的优势,b书是所有叶子、非叶子都存储数据)。这种结构使得树结构高度很低 Hash索引 一般情况下hash比b+速度快

Mysql死锁原理分析

纵然是瞬间 提交于 2020-02-23 19:29:24
文章来自何凳成博客 1 背景 MySQL/InnoDB 的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事 咨询这方面的问题。同时,微博上也经常会收到MySQL 锁相关的私信,让我帮助解决一些 死锁的问题。本文,准备就MySQL/InnoDB 的加锁问题,展开较为深入的分析与讨论,主要 是介绍一种思路,运用此思路,拿到任何一条SQL 语句,就能完整的分析出这条语句会加 什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。 注 :MySQL 是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB 存储引擎,其他引擎的表现,会有较大的区别。 1.1 MVCC:Snapshot Read vs Current Read MySQL InnoDB 存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-Version Concurrency Control) (注:与MVCC相对的,是基于锁的并发控制,Lock-Based ConcurrencyControl)。MVCC 最大的好处,相信也是耳熟能详:读不加锁,读写不冲突。在读多些少的OLTP 应用中,读写不冲突是非常重要的,极大的增加了系统的并发性能,这也是为什么现阶段,几乎所有的 RDBMS,都支持了 MVCC。 在 MVCC 并发控制中

创建统计信息来优化查询性能

折月煮酒 提交于 2020-02-23 17:49:57
今天使用sqlserver2008的“数据库引擎优化顾问”在对一个sql进行优化时, 索引建议里给出如下建议目标: --CREATE STATISTICS CREATE STATISTICS [_dta_stat_1758629308_16_10_1] ON [dbo].[PrmOrderPromiseTime]([DistributionId], [StoreId], [OrderId]) -- 包含索引 CREATE NONCLUSTERED INDEX [_dta_index_PrmOrderSiteActualTime_6_1582628681__K1_2_7] ON [dbo].[PrmOrderSiteActualTime] ( [OrderId] ASC ) INCLUDE ( [SiteId], [ActualSiteId]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY] 尤其是create statistics,粗略地了解了下。 如下知识来自 csdn : 1.STATISTICS是一个表中某几个列的统计信息,如一个表是全校学生某次考试的分数,score列的类型是int,取值范围是0到100的整数

关于python列表的索引的相关用法

☆樱花仙子☆ 提交于 2020-02-23 15:27:39
先看如下代码: from torch . nn import functional as F import torch import torch . autograd as autograd input = torch . Tensor ( [ [ - 0.0763 , 0.3447 , - 0.1181 ] , [ 2.0828 , 0.5774 , 0.6320 ] , [ 0.1 , 0.2 , 0.3 ] ] ) print ( input ) output = F . log_softmax ( input , dim = 1 ) #每一维的索引单独用一个中括号的情况 print ( output ) """ #tensor([[-1.2478, -0.8268, -1.2896], [-0.3759, -1.8813, -1.8267], [-1.2019, -1.1019, -1.0019]] ) """ print ( output [ range ( 3 ) ] [ 0 ] ) #tensor([-1.2478, -0.8268, -1.2896]) print ( output [ 0 ] [ range ( 3 ) ] ) #tensor([-1.2478, -0.8268, -1.2896]) print ( output [ range ( 3 ) ] [

数据库30条规范

我的未来我决定 提交于 2020-02-23 15:18:15
一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表、数据字段必须加入中文注释 解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的 (4)禁止使用存储过程、视图、触发器、Event 解读:高并发大数据的互联网业务,架构设计思路是“解放数据库CPU,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”。数据库擅长存储与索引,CPU计算还是上移吧 (5)禁止存储大文件或者大照片 解读:为何要让数据库做它不擅长的事情?大文件和照片存储在文件系统,数据库里存URI多好 二、命名规范 (6)只允许使用内网域名,而不是ip连接数据库 (7)线上环境、开发环境、测试环境数据库内网域名遵循命名规范 业务名称:xxx 线上环境:dj.xxx.db 开发环境:dj.xxx.rdb 测试环境:dj.xxx.tdb 从库 在名称后加-s标识, 备库 在名称后加-ss标识 线上从库:dj.xxx-s.db 线上备库:dj.xxx-sss.db (8)库名、表名、字段名:小写,下划线风格,不超过32个字符,必须见名知意,禁止拼音英文混用 (9)表名t_xxx

NULL SQL Server Oracle

本秂侑毒 提交于 2020-02-23 13:53:16
1.Like '%' 在SQL Server和Oracle中都查询不出来字段为NULL的行 2. NULL是不能被索引到的,is null会导致索引不能使用. 3.当索引中的两个字段中有一个是Not null,则is null是可以使用索引的,参考:Tom 271页 4.当一列中有NULL值时,count(这列)时不会把NULL计算在内,但count(*)时会把这行计算在内,不管这行中的字段是不是都是NULL 5.SQL Server中任何值与NULL计算结果还是NULL,如字符串连接,数值相加等。 Oracle 中字符串连接不是NULL,而是新的值,其它跟SQL Server是一样的 6.所有的值与NULL比较是,都是false,包括NULL=NULL 7.Order by时,当字段有NULL时,SQL Server默认是把NULL放在顶部,Oracle是放在底部。 来源: https://www.cnblogs.com/trylazy/archive/2006/04/03/365550.html

实战 Lucene2.0

别等时光非礼了梦想. 提交于 2020-02-23 11:51:07
Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。 目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行索引和搜索。比如你要对一些 HTML 文档,PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的,然后将转化后的内容交给 Lucene 进行索引,然后把创建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引文件上进行查询。不指定要索引的文档的格式也使 Lucene 能够几乎适用于所有的搜索应用程序。 图 1 表示了搜索应用程序和 Lucene 之间的关系,也反映了利用 Lucene 构建搜索应用程序的流程: 图 1. 搜索应用程序和 Lucene 之间的关系 回页首 索引和搜索 索引是现代搜索引擎的核心,建立索引的过程就是把源数据处理成非常方便查询的索引文件的过程。为什么索引这么重要呢,试想你现在要在大量的文档中搜索含有某个关键词的文档

Python列表、元组

百般思念 提交于 2020-02-23 08:01:59
序列是Python中最基本的最重要的数据结构,python内置的6种序列类型有list, tuple, string, unicode, buffer, xrange 序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。并且序列都可以进行索引、检查成员、切片、加、乘等操作。 列表 列表属于可变数据类型 1、创建一个简单的列表: a = ['a','b','c']b = [1,2,3,4,,5] 2、读取列表的值: a[2] 结果为 c 3、删除: del(a[2]) del(a) 4、列表的嵌套: a = ['a','b',['c','d'],'e'] 5、列表的切片(重点) 对于具有序列结构的数据来说,切片操作的方法是:consequence[start_index: end_index: step]。 a = [1,2,3,4,5,6,7,8]a[2:]结果为:[3,4,5,6,7,8]a[2:5]结果为:[3,4,5]a[2::2]结果为:[3,5,7]a[2:2:2]结果为:[3,5]a[::-1]结果为:[8,7,6,5,4,3,2,1] 6、list支持"+","*" list常用的方法: list.append() 在list末尾加上新的元素 list.inster(index,obj) 将obj添加到索引为index的位置

列表及元组

为君一笑 提交于 2020-02-23 08:01:13
列表 列表(list)是python里的一种常用的数据类型,用于存储经常需要改变的数据,列表有很多方法,下面一一介绍 1. 切片 列表的切片与字符串切片基本一致 1 l1 = [1, 2, 3, "hello", "world", 2] 2 print(l1[2:6:2]) 输出 [3, 'world'] Process finished with exit code 0 列表增加元素的方法有追加、插入和迭代追加三种: 2. 追加(append) 在列表尾部添加,可以添加数字,字符串,列表,元组等 1 l1 = [1, 2, 3, "hello", "world", 2] 2 l1.append("hellokitty") 3 print(l1) 4 l1.append([4, 5, 6]) 5 print(l1) 6 l1.append(("a", "b", "c")) 7 print(l1) 输出 [1, 2, 3, 'hello', 'world', 2, 'hellokitty'] [1, 2, 3, 'hello', 'world', 2, 'hellokitty', [4, 5, 6]] [1, 2, 3, 'hello', 'world', 2, 'hellokitty', [4, 5, 6], ('a', 'b', 'c')] Process finished