索引

一文彻底搞懂Python切片操作

て烟熏妆下的殇ゞ 提交于 2020-03-09 08:25:23
在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况, 切片操作 正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情况。若有错误和不足之处请大牛指正! 一、Python可切片对象的索引方式 Python可切片对象的索引方式包括: 正索引 和 负索引 两部分。 如下图所示,以 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 为例: 二、Python切片操作的一般方式 一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step),当只有一个“:”时,默认第三个参数step=1。 切片操作基本表达式:object[start_index : end_index : step] step :正负数均可,其绝对值大小决定了切取数据时的“步长”,而 正负号决定了“切取方向” ,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以增量1取值。“ 切取方向非常重要 !”“ 切取方向非常重要 !”“ 切取方向非常重要 !”,重要的事情说三遍!

pandas——层次索引

天大地大妈咪最大 提交于 2020-03-09 08:11:40
多个索引修改index_clo属性的赋值 下面这一行读取,是将前两列作为行索引,index_col=[0,1] df = pd . read_excel ( 'my_excel.xlsx' , header = 0 , sheet_name = 0 , encoding = 'gbk' , index_col = [ 0 , 1 ] ) ''' sex add 名字 age 王贵 24 男 中国 狗子 35 男 非洲 黑蛋 23 女 南美 小五 5 男 英国 李四 6 男 苏兰 小红 4 女 芬兰 王贵 22 男 巴黎 狗子 22 男 法国 ''' 查询数据 1,使用df.loc[A,B]函数查询某一个条件时,将 两列中每个索引放入一个元组内 作为A的值, df.loc[(索引1,索引2),列索引] print ( df . loc [ ( '王贵' , 24 ) , : ] ) ''' sex 男 add 中国 Name: (王贵, 24), dtype: object ''' 2,使用多个loc[ ]分多个索引查询, df.loc[索引1].loc[索引2] print ( df . loc [ '王贵' ] . loc [ 24 ] ) ''' sex 男 add 中国 Name: 24, dtype: object ''' 3,对于每部分索引加中括号和不加有一定区别

整理SQL索引碎片提速

五迷三道 提交于 2020-03-09 07:54:09
整理SQL索引碎片提速2007年07月15日 星期日 下午 03:20检查索引碎片DBCC SHOWCONTIG(表) 逻辑扫描碎片和扩展盘区扫描碎片都非常大,需要对索引碎片进行处理 一般有两种方法解决,一是利用DBCC INDEXDEFRAG整理索引碎片,二是利用DBCC DBREINDEX重建索引。二者各有优缺点。调用微软的原话如下: DBCC INDEXDEFRAG 命令是联机操作,所以索引只有在该命令正在运行时才可用。而且可以在不丢失已完成工作的情况下中断该操作。这种方法的缺点是在重新组织数据方面没有聚集索引的除去/重新创建操作有效。 重新创建聚集索引将对数据进行重新组织,其结果是使数据页填满。填满程度可以使用 FILLFACTOR 选项进行配置。这种方法的缺点是索引在除去/重新创建周期内为脱机状态,并且操作属原子级。如果中断索引创建,则不会重新创建该索引。 也就是说,要想获得好的效果,还是得用重建索引,所以决定重建索引。 DBCC DBREINDEX(表, 索引名, 填充因子) 第一个参数,可以是表名,也可以是表ID。 第二个参数,如果是'',表示影响该表的所有索引。 第三个参数,填充因子,即索引页的数据填充程度。如果是100,表示每一个索引页都全部填满,此时select效率最高,但以后要插入索引时,就得移动后面的所有页,效率很低。如果是0,表示使用先前的填充因子值。

ElasticSearch和solr的对比

冷暖自知 提交于 2020-03-09 06:30:32
关于ES :ElasticSearch是一个事实分布式搜索和分析引擎,使用其可以以前所未有的速度处理大数据,他用于全文搜索、结构化搜索、分析以及将这三者混合使用。维基百科使用ElasticSearch提供全文搜索并高亮关键字,以及输入实时搜索(search+asyou+type)等搜索纠错(did+you+mean)等搜索建议功能。ElasticSearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是在专有领域,Lucene可以被认为是迄今最先进、性能最好的、功能最全的搜索引擎库。 关于Solr :solr是Apache下的一个顶级开源项目,采用java开发,它是基于Lucene的全文搜索服务器。solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展、并对索引、搜索性能进行了优化。solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,solr索引是实现方法很简单,用post方法向solr服务器发送一个描述Field及其内容的xml文档,solr根据xml文档添加、删除、更新索引。 二者之间对比: 相同点: 都是基于Lucene,都是对Lucene的封装 不同点: 使用 Solr安装略微复杂一些,es基本的开箱急用,非常简单 接口 Solr类似webservice的接口;es是基于restful风格的访问接口

pandas数据结构介绍

冷暖自知 提交于 2020-03-09 04:42:52
一、Series (一)定义 是一种一维的数组型对象,包含了一个值序列,并且包含了数据标签,称为索引。Series可以认为它是一个长度固定且有序的字典,因为它将索引值和数据值按位置配对。 (二)创建 第一种方式:默认的索引 import pandas as pd x = pd.Series([3,4,8,7]) print(x) 返回值为 0 3 1 4 2 8 3 7 dtype: int64 第二种方式:定义索引 import pandas as pd x = pd.Series([3,4,8,7],index=[‘a’,‘b’,‘c’,‘d’]) print(x) 返回值为 a 3 b 4 c 8 d 7 dtype: int64 第三种方式:通过使用已有的字典生成一个Series (1)直接将字典的键值对传进函数 import pandas as pd a={‘a’:3,‘b’:4,‘c’:8,‘d’:7} x = pd.Series(a) print(x) 返回值为 a 3 b 4 c 8 d 7 dtype: int64 (2)将字典的键值传入和一个新建的索引列表传进函数 import pandas as pd a={‘a’:3,‘b’:4,‘c’:8,‘d’:7} b=[‘a’,‘b’,‘c’,‘e’] x = pd.Series(a,index=b) print(x

14-SQLServer索引碎片

≡放荡痞女 提交于 2020-03-09 04:42:05
一、总结 1、数据库的存储本身是无序的,建立聚集索引之后,就会按照聚集索引的物理顺序存入硬盘; 2、建立索引完全是为了提升读取的速度,相对写入的速度就会降低,没有索引的表写入时最快的,但是大多数系统读的频率要高于写的频率; 3、索引碎片分为内部碎片和外部碎片。   内部碎片:是指索引页没有100%存储满,有剩余空间,这就是内部碎片;产生原因是在insert或者update数据时,该页不足以放下新增或更新的数据,造成分页,导致索引页的平均密度变小,就产生了内部碎片;   外部碎片:是指做插入或更新操作时,原来页无法容纳新的行,导致分页(分页会将原来页大约一半的数据放到新页上,达到一个平衡状态),而新的页和原来的页在物理上又不连续了(分页之前,他们之间有好多页面),而聚集索引要求行之前是连续的,所以分页后,新叶和原来页物理上的不连续是造成外部碎片的原因。 4、修改填充因子,也有可能解决索引碎片的问题,一千万的数据量修改填充因子用了1分钟(只是测试,表没有做删除的操作); 5、索引碎片查出的记录数(record_count)与直接select count(*)查出的数据量可能不一样,具体解释参考下面对字段意思的解释处; 7.如果数据库里有批量数据的删除,导致avg_page_space_used_in_percent页的百分比变小,产生了碎片,这个时候可以通过收缩数据文件来增大页百分比

MSSQL 重新生成索引,重新组织索引

做~自己de王妃 提交于 2020-03-09 04:39:01
> 5% 且 < = 30% ALTER INDEX REORGANIZE > 30% ALTER INDEX REBUILD WITH (ONLINE = ON)* * 重新生成索引可以联机执行,也可以脱机执行。重新组织索引始终联机执行。若要获得与重新组织选项相似的可用性,应联机重新生成索引。 这些值提供了一个大致指导原则,用于确定应在 ALTER INDEX REORGANIZE 和 ALTER INDEX REBUILD 之间进行切换的点。不过,实际值可能会随情况而变化。必须要通过试验来确定最适合您环境的阈值。 非常低的碎片级别(小于 5%)不应通过这些命令来解决,因为删除如此少量的碎片所获得的收益始终远低于重新组织或重新生成索引的开销。 注 : rebuild和rebuild online的区别 1 、当 rebuild 时一般对原先索引进行 INDEX FAST FULL SCAN 。 2 、当 rebuild online的 时不用原先索引而执行 TABLE ACCESS FULL 3 、 rebuild和rebuild online 都 会发生sort ,即需要用到 t emp 表空间。 4 、 rebuild 会阻塞dml(curd等)语句而rebuild online则不会。 5 、rebuild online时系统会产生一个SYS_JOURNAL

重新生成索引和重新组织索引

ε祈祈猫儿з 提交于 2020-03-09 04:31:40
重新生成和重新组织索引区别 1.重新生成索引: ALTER INDEX 索引名 on 表名 REBUILD 重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。 2.重新组织索引: ALTER INDEX 索引名 on 表名 reorganize 重新组织索引是通过对叶页进行物理重新排序,使其与叶节点的逻辑顺序(从左到右)相匹配,从而对表或视图的聚集索引和非聚集索引的叶级别进行碎片整理。使页有序可以提高索引扫描的性能。索引在分配给它的现有页内重新组织,而不会分配新页。如果索引跨多个文件,将一次重新组织一个文件,不会在文件之间迁移页。 重新组织还会压缩索引页。如果还有可用的磁盘空间,将删除此压缩过程中生成的所有空页。压缩基于 sys.indexes 目录视图中的填充因子值。 重新组织进程使用最少的系统资源。而且,重新组织是自动联机执行的。该进程不持有长期阻塞锁,所以不会阻止运行查询或更新。 索引碎片不太多时,可以重新组织索引。请参阅上面的表,了解有关碎片的指导原则。不过,如果索引碎片非常多,重新生成索引则可以获得更好的结果。. 原文地址: https://blog.csdn.net/yanjinrong

重新组织 vs 重新生成索引

蹲街弑〆低调 提交于 2020-03-09 04:30:18
  索引是数据库引擎中针对表(有时候也针对视图)建立的特别数据结构,用来帮助查找和整理数据。索引的重要性体现在能够使数据库引擎快速返回查询 结果。当对索引所在的基础数据表进行修改时(包括插入、删除和更新等操作),会导致索引碎片的产生。当索引的逻辑排序和基础表或视图的物理排序不匹配时, 就会产生索引碎片。随着索引碎片的不断增多,查询响应时间就会变慢,查询性能也会下降。在SQL Server 2005中,要解决这个问题,要么重新组织索引要么重新生成索引。    重新组织VS重新生成   修复索引碎片的方法有两种:重新组织索引或重新生成索引。重新组织索引会对最外层数据页里的数据进行重新排序,并压缩索引页。重新组织的过程中 不会添加任何额外的数据,所以索引可能还残留着一定程度的碎片。重新组织索引操作不会占用很多系统资源,在运行过程中外部进程也能够对该索引所在的数据表 进行查询,所以能够说是联机(online)执行。   重新生成索引操作基本上删除掉目标索引并创建一个新索引。旧索引中的任何碎片都会被删除,新索引的逻辑排序将和对象的物理排序相匹配。由于整个 过程需要删除索引并重新创建,所以外部进程无法访问数据表,而且访问性能也大受影响。事实上,在重新生成索引的过程中,其他进程并不能完全锁定数据表。这 是重新生成索引的一大障碍。    联机重新生成索引   SQL Server

10-07重新生成和组织索引

爷,独闯天下 提交于 2020-03-09 04:27:38
为什么要重新组织索引: 对基础数据做查询,增加,删除,修改的操作时,数据库会自动维护索引, 但时间长了会导致索引的部分信息分散在数据库中,碎片多的索引,会降低查询性能, 造成程序运行缓慢。 重新组织索引的步骤: 一般碎片比列大于30%重新生成索引。 小于30%大于5%重新组织索引。 小于5%不需要处理。 重新组织的步骤: 点击管理,下面有维护计划,右击点维护计划向导。 出现这个页面直接单击下一步。 这里可以把名字改成重新组织索引,然后单击下一步。 这里选择重新组织索引,点下一步。 直接点击下一步。 这里特定数据库就是自己决定的数据库,下面选择表,再下面可以选择哪一个表。 这里可以选择路径,选择好以后单击下一步。 下面单击操作就可以完成了。 点开你建的表,右击索引,点重新组织索引。 这里可以查看索引的数量,根据索引碎片的数量判断操作哪一个。 来源: https://www.cnblogs.com/gcmwalker/p/6193153.html