精华内容
下载资源
问答
  • PostgreSQL创建索引例子

    万次阅读 2017-09-05 23:14:13
    --10索引 CREATE INDEX ds_product_imagery_gf2_10_centertime_idx  ON public.ds_product_imagery_gf2_10 USING btree  (centertime DESC)  TABLESPACE pg_default; CREATE INDEX ds_product_i


    --10索引
    CREATE INDEX ds_product_imagery_gf2_10_centertime_idx
        ON public.ds_product_imagery_gf2_10 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_10_fbounds_idx
        ON public.ds_product_imagery_gf2_10 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_10_fgeometry_idx
        ON public.ds_product_imagery_gf2_10 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_10_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_10 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_10
        ADD CONSTRAINT ds_product_imagery_gf2_10_pkey PRIMARY KEY (id);


    --11索引
    CREATE INDEX ds_product_imagery_gf2_11_centertime_idx
        ON public.ds_product_imagery_gf2_11 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_11_fbounds_idx
        ON public.ds_product_imagery_gf2_11 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_11_fgeometry_idx
        ON public.ds_product_imagery_gf2_11 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_11_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_11 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_11
        ADD CONSTRAINT ds_product_imagery_gf2_11_pkey PRIMARY KEY (id);


    --12索引
    CREATE INDEX ds_product_imagery_gf2_12_centertime_idx
        ON public.ds_product_imagery_gf2_12 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_12_fbounds_idx
        ON public.ds_product_imagery_gf2_12 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_12_fgeometry_idx
        ON public.ds_product_imagery_gf2_12 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_12_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_12 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_12
        ADD CONSTRAINT ds_product_imagery_gf2_12_pkey PRIMARY KEY (id);




    --13索引
    CREATE INDEX ds_product_imagery_gf2_13_centertime_idx
        ON public.ds_product_imagery_gf2_13 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_13_fbounds_idx
        ON public.ds_product_imagery_gf2_13 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_13_fgeometry_idx
        ON public.ds_product_imagery_gf2_13 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_13_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_13 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_13
        ADD CONSTRAINT ds_product_imagery_gf2_13_pkey PRIMARY KEY (id);


    --14索引
    CREATE INDEX ds_product_imagery_gf2_14_centertime_idx
        ON public.ds_product_imagery_gf2_14 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_14_fbounds_idx
        ON public.ds_product_imagery_gf2_14 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_14_fgeometry_idx
        ON public.ds_product_imagery_gf2_14 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_14_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_14 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_14
        ADD CONSTRAINT ds_product_imagery_gf2_14_pkey PRIMARY KEY (id);


    --15索引
    CREATE INDEX ds_product_imagery_gf2_15_centertime_idx
        ON public.ds_product_imagery_gf2_15 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_15_fbounds_idx
        ON public.ds_product_imagery_gf2_15 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_15_fgeometry_idx
        ON public.ds_product_imagery_gf2_15 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_15_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_15 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_15
        ADD CONSTRAINT ds_product_imagery_gf2_15_pkey PRIMARY KEY (id);


    --16索引


    CREATE INDEX ds_product_imagery_gf2_16_centertime_idx
        ON public.ds_product_imagery_gf2_16 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_16_fbounds_idx
        ON public.ds_product_imagery_gf2_16 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_16_fgeometry_idx
        ON public.ds_product_imagery_gf2_16 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_16_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_16 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_16
        ADD CONSTRAINT ds_product_imagery_gf2_16_pkey PRIMARY KEY (id);


    --17索引
    CREATE INDEX ds_product_imagery_gf2_17_centertime_idx
        ON public.ds_product_imagery_gf2_17 USING btree
        (centertime DESC)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_17_fbounds_idx
        ON public.ds_product_imagery_gf2_17 USING gist
        (fbounds)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_17_fgeometry_idx
        ON public.ds_product_imagery_gf2_17 USING btree
        (fgeometry)
        TABLESPACE pg_default;




    CREATE INDEX ds_product_imagery_gf2_17_satellite_sensor_idx
        ON public.ds_product_imagery_gf2_17 USING btree
        (satellite COLLATE pg_catalog."default" DESC, sensor COLLATE pg_catalog."default" DESC)
        TABLESPACE pg_default;


    ALTER TABLE public.ds_product_imagery_gf2_17
        ADD CONSTRAINT ds_product_imagery_gf2_17_pkey PRIMARY KEY (id);








    CREATE INDEX ds_product_imagery_gf2_10_id_idx
        ON public.ds_product_imagery_gf2_10 USING btree
        (id)
        TABLESPACE pg_default;
    CREATE INDEX ds_product_imagery_gf2_11_id_idx
        ON public.ds_product_imagery_gf2_11 USING btree
        (id)
        TABLESPACE pg_default;
    CREATE INDEX ds_product_imagery_gf2_12_id_idx
        ON public.ds_product_imagery_gf2_12 USING btree
        (id)
        TABLESPACE pg_default;
    CREATE INDEX ds_product_imagery_gf2_13_id_idx
        ON public.ds_product_imagery_gf2_13 USING btree
        (id)
        TABLESPACE pg_default;
    CREATE INDEX ds_product_imagery_gf2_14_id_idx
        ON public.ds_product_imagery_gf2_14 USING btree
        (id)
        TABLESPACE pg_default;
    CREATE INDEX ds_product_imagery_gf2_15_id_idx
        ON public.ds_product_imagery_gf2_15 USING btree
        (id)
        TABLESPACE pg_default;
    CREATE INDEX ds_product_imagery_gf2_16_id_idx
        ON public.ds_product_imagery_gf2_16 USING btree
        (id)
        TABLESPACE pg_default;
    CREATE INDEX ds_product_imagery_gf2_17_id_idx
        ON public.ds_product_imagery_gf2_17 USING btree
        (id)
        TABLESPACE pg_default;
    展开全文
  • 索引的概念和创建索引例子

    千次阅读 2017-06-29 15:36:57
    1 索引的概念 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。表的存储由两部分组成,一部分用来存放数据页面,另一部分存放索引...

    1 索引的概念

    索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。表的存储由两部分组成,一部分用来存放数据页面,另一部分存放索引页面。通常,索引页面相对于数据页面来说小得多。数据检索花费的大部分开销是磁盘读写,没有索引就需要从磁盘上读表的每一个数据页,如果有索引,则只需查找索引页面就可以了。所以建立合理的索引,就能加速数据的检索过程。

    SQL Server采用B-树结构的索引,根据索引的顺序与数据表的物理顺序是否相同可以分为:聚簇索引(clustered index)和非聚簇索引(nonclustered index)。

    (1)聚簇索引重新组织表中的数据以按指定的一个或多个列的值排序。聚簇索引的叶节点包含实际的数据,因此用它查找数据很快,但每个表只能建一个聚簇索引。

    (2)非聚簇索引不重新组织表中的数据,它的叶节点中存储了组成非聚簇索引的列的值和行定位指针。一个表可以建249 个非聚簇索引。

    通俗的说,汉语字典的正文就是一个建立在拼音基础上的聚簇索引,以英文字母“a”开头并以“z”结尾。比如,我们要查“阿”字,就会翻开字典的第一页,因为“阿”的拼音是“a”,所以排在字典的前面。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明字典中没有这个字。同样的,如果查“做”字,就会把字典翻到最后。

    字典的“偏旁部首”是非聚簇索引。比如我们要查“阿”字,在查部首之后,看到部首检字表中“阿”的页码是1页,“阿”的上面是“际”字,但页码却是277页,“阿”的下面是“陇”字,页码是416页。很显然,这些字并不是真正的分别位于“阿”字的上下方,现在看到的连续的“际、阿、陇”三字实际上就是他们在非聚簇索引中的排序,是字典正文中的字在非聚簇索引中的映射。

    2 索引的使用

    1)聚簇索引的使用

    在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查(between、<、<=、>、>=)或使用group by、order by的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行必然连在一起,不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。

    聚簇索引的侯选列是:

    u        经常按范围存取的列,如date>”20050101” and date< “20050131”;

    u        经常在where子句中使用并且插入是随机的主键列;

    u        在group by或order by中使用的列;

    u        在连接操作中使用的列。

    2)非聚簇索引的使用

    由于非聚簇索引的叶级点不包含实际的数据,因此它检索效率较低,但一个表只能建一个聚簇索引,当用户需要建立多个索引时就需要使用非聚簇索引了。在建立非聚簇索引时,要权衡索引对查询速度的加快与降低修改速度之间的利弊。

    在下面情况中使用非聚簇索引:

    u        常用于集合函数(如Sum,....)的列;

    u        常用于join, order by, group by的列;

    u        查寻出的数据不超过表中数据量的20%。

    3)创建索引需要注意的要点

    1)    慎重选择作为聚簇索引的列

    默认情况下,SQL Server用主键创建聚簇索引。这种做法常常造成聚簇索引的浪费。通常,我们会为每个表建立一个ID列,以区分每条数据,并且该列是自动增大的,步长一般为1。如果我们把这个列设为主键,SQL Server会将此列默认为聚簇索引。这样做可以使数据在数据库中按ID进行物理排序,但这种做法在实际应用中意义并不大。根据前面谈到的聚簇索引的定义和使用情况可以看出,使用聚簇索引的最大好处就是能够根据查询要求,迅速返回某个范围内的数据,避免全表扫描。在实际应用中,因为ID号是自动生成的,我们并不知道每条记录的ID号,所以我们不太可能用ID号来进行查询。这就使聚簇索引成为摆设,造成资源浪费。其次,让每个值都不同的ID列作为聚簇索引也不符合“大数目的不同值情况下不应建立聚簇索引”规则。

    一般情况下,数据库应用系统进行数据检索都离不开“ 用户名(代码)”、“日期”字段。以笔者所用的HIS系统(医院管理信息系统)为例,我们进行费用、处方、检查单等信息检索时需要根据“住院号”和“日期”这两个字段来返回特定范围内的数据。下面我们分几种情况观察在不同索引条件下查询相同内容所用的时间。

    假设病人费用表名为“brfy”,其中住院号字段名为“zyh”,日期字段名为“riqi”,要求是从表brfy中检索zyh为“028246”的病人2005年3月1日到20日的费用,对应的SQL语句如下:

    Select * from brfy where zyh=’028246’ and riqi>=’20050301’ and riqi<=’20050320’;

    第一种情况,用ID列建立聚簇索引,不为zyh和riqi建立索引,查询时间为87秒。

    第二种情况,用ID列建立聚簇索引,为zyh和riqi两列建立非聚簇索引(zyh在前),查询时间为33秒。

    第三种情况,用zyh和riqi两列建立聚簇索引(zyh在前),查询时间为2秒。

    由以上分析可以看出聚簇索引是非常宝贵的,应该为经常用于检索某个范围内数据的列或group by、order by等子句的列建立聚簇索引,这样能够极大的提高系统性能。

    2)    重视以多个列创建的索引中列的顺序问题

    一些用户认为只要合理的选择列建立索引,不必关心列的顺序就可以提高检索速度,这种观点是错误的。多列索引中列的先后顺序应该和实际应用中where、group by或order by等子句里列的放置位置相同。参考上面举的例子,在第二、第三种情况下,如果把riqi放在zyh前面,执行上述SQL语句就不会用到这两个索引,检索的时间也会变得很长。

    3 索引的维护

    数据库系统运行一段时间后,随着数据行的插入、删除和数据页的分裂,索引对系统的优化性能就会大大降低。这时候,我们需要对索引进行分析和重建。

    SQL Server使用DBCC SHOWCONTIG确定是否需要重建表的索引。在 SQL Server的查询分析器中输入命令:

    Use database_name

    Declare @table_id int

    Set @table_id=object_id ('Employee')

    Dbcc showcontig (@table_id)

    在命令返回的参数中Scan Density 是索引性能的关键指示器,这个值越接近100%越好,一般在低于90%的情况下,就需要重建索引。重建索引可以使用DBCC DBREINDEX,使用方式如下:

    dbcc dbreindex('表名', 索引名, 填充因子)       /*填充因子一般为90或100*/

    如果重建后,Scan Density还没有达到100%,可以重建该表的所有索引:

    dbcc dbreindex('表名', '', 填充因子)

    在良好的数据库设计基础上,有效地使用索引是数据库应用系统取得高性能的基础。然而,任何事物都具有两面性,索引也不例外。索引的建立需要占用额外的存储空间,并且在增、删、改操作中也会增加一定的工作量,因此,在适当的地方增加适当的索引并从不合理的地方删除次要的索引,将有助于优化那些性能较差的数据库应用系统。实践表明,合理的索引设计是建立在对各种查询的分析和预测上的,只有正确地使索引与程序结合起来,才能产生最佳的优化方案。


    1.创建表并插入数据

    在Sql Server2008中创建测试数据库Test,接着创建数据库表并插入数据,sql代码如下:

    复制代码
    USE Test
    IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
          WHERE TABLE_NAME = 'emp_pay')
       DROP TABLE emp_pay
    GO
    USE Test
    IF EXISTS (SELECT name FROM sys.indexes 
          WHERE name = 'employeeID_ind')
       DROP INDEX emp_pay.employeeID_ind
    GO
    USE Test
    GO
    CREATE TABLE emp_pay
    (
     employeeID int NOT NULL,
     base_pay money NOT NULL,
     commission decimal(2, 2) NOT NULL
    )
    INSERT emp_pay
       VALUES (1, 500, .10)
    INSERT emp_pay 
       VALUES (2, 1000, .05)
    INSERT emp_pay 
       VALUES (6, 800, .07)
    INSERT emp_pay
       VALUES (5, 1500, .03)
    INSERT emp_pay
       VALUES (9, 750, .06)
    复制代码

    执行完上述sql代码以后我们会发现在Test数据库中多出了一张emp_pay表,数据库表的内容如下图所示:

    2.无索引查找

    从上图我们可以看出数据库中存储的数据排列顺序与我们插入的先后顺序一致。接下来我们查询employeeID=5的字段,执行如下sql代码:

    USE Test
    SELECT * FROM emp_pay where employeeID=5

    在SQL SERVER MANAGEMENT STUDIO中我们点击“显示估计的查询计划”,会出现如下图所示的查询计划图:

    其中表扫描的内容为:

    3.创建索引

    接下来我们为上述表添加聚集唯一索引,代码如下:

    SET NOCOUNT OFF
    CREATE UNIQUE CLUSTERED INDEX employeeID_ind
       ON emp_pay (employeeID)
    GO

    在执行完上述创建索引的代码以后,我们再次查询emp_pay的数据内容,如下图所示:

    从上图我们可以发现数据内容已经按照employeeID进行了排序。

    我们继续执行前面关于employeeID=5的查询,点击“显示估计的执行计划”,出现如下图所示内容:

    聚集索引查找的内容为:

    总结:

    当我们为数据库表中的某一个字段创建索引,并且在查询语句中where子句中用到这样一个字段,那么查询效率会有所提高,我们上述实验因为数据量的关系查询效率提高不明显。

    补充

    我们上面添加的索引是唯一聚集索引,因此当插入的数据在employeeID字段出现重复时会报错。假如我们在创建索引之前数据字段出现重复,那么就不能创建唯一索引。

    创建索引以后的排序(PS:2012-5-28)

    执行如下sql语句

    update emp_pay set employeeID=7 where employeeID=1;

    然后再次执行全表查询,我们发现查询结果如下所示:

    只要我们更新了employeeID,那么最后的更新结果都会按照employeeID的值进行升序排序。这是因为我们在employeeID上创建了索引的缘故。

    删除索引(PS:2012-6-4)

    我们可以通过sql server management studio这个工具删除索引,也可以通过sql语句进行索引的删除,假设我们要求删除在前面创建的索引employeeID_ind,那么sql语句如下代码所示:

    DROP INDEX employeeID_ind ON emp_pay;

    展开全文
  • MySQL 创建索引(Create Index)的方法和语法结构及例子
  • lasticsearch整合分词、创建索引、搜索例子,elasticsearch版本为1.0,索引数据从数据表中动态读取生成,有关键字高亮效果,查询分页 1 在dababase目录中导致相关的数据库文件,修改DBCOperation java文件数据库连接...
  • MySQL里创建索引 Create Index 的方法和语法结构及例子
                   

    CREATE INDEX Syntax

    CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (index_col_name,...)
        [index_type]

    index_col_name:
        col_name [(length)] [ASC | DESC]

    index_type:
        USING {BTREE | HASH | RTREE}

     

    -- 创建无索引的表格create table testNoPK (  id int not null,  name varchar(10) );-- 创建普通索引 create index IDX_testNoPK_Name on testNoPK (name);

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • sqlserver创建索引

    千次阅读 2013-11-27 14:53:19
    为给定表或视图创建索引。 只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一 个数据库中的表或视图创建索引。 ...
    CREATE INDEX
    
    为给定表或视图创建索引。


    只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一


    个数据库中的表或视图创建索引。


    语法
    CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
    ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) 
    [ WITH < index_option > [ ,...n] ] 
    [ ON filegroup ]


    < index_option > ::= 
    { PAD_INDEX |
    FILLFACTOR = fillfactor |
    IGNORE_DUP_KEY |
    DROP_EXISTING |
    STATISTICS_NORECOMPUTE |
    SORT_IN_TEMPDB 

    }



    CREATE INDEX 语句用于在表中创建索引。
    在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。


    索引
    您可以在表中创建索引,以便更加快速高效地查询数据。
    用户无法看到索引,它们只能被用来加速搜索/查询。
    注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的


    列(以及表)上面创建索引。
    SQL CREATE INDEX 语法
    在表上创建一个简单的索引。允许使用重复的值:
    CREATE INDEX index_name
    ON table_name (column_name)


    注释:"column_name" 规定需要索引的列。
    SQL CREATE UNIQUE INDEX 语法
    在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。


    CREATE UNIQUE INDEX index_name
    ON table_name (column_name)


    CREATE INDEX 实例
    本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 列:
    CREATE INDEX PersonIndex
    ON Person (LastName) 
    如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:
    CREATE INDEX PersonIndex
    ON Person (LastName DESC) 
    假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
    CREATE INDEX PersonIndex
    ON Person (LastName, FirstName)


    聚簇索引和非聚簇索引都是为了增加数据检索速度而存在的.


    在配置上, 每个表只能有一个聚簇索引,而能有200多个非聚簇索引。


    在物理分配上, 每个表的数据都是分配在页上,一个页大概有8k左右,假设一条数据占1000字节的话,那么8000条数据占8000*1k/8k = 1000页面


    ,这些数据存在于数据块中。


    如果对这些数据中的某一10字节的字段做聚簇索引的话,8000 * 0.01K /8 = 10 页面,那么10页面作为存储这些索引而存在。并存放于索引块  


    如果对这些数据中的某一10字节的字段做非聚簇索引的话,2 * 8000 * 0.01K /8 = 20 页面,那么20页面作为存储这些索引而存在。并存放于索引


    块。乘2 的原因请看以下叙述。


    在功能上,      聚簇索引后,数据按照索引的顺序来排序,所以索引所指向的就是数据层里对应的相关数据。


                    非聚簇索引后,数据不会按照索引的顺序来排序,所以数据库会先按字理或逻辑先生成首层索引, 再根据首层索引生成第二层索


    引,第二层索引


    所指向的才是数据层里对应的相关数据。


    在性能上,      聚簇索引在大多数的情况下对该索引的查询操作性能是最好的,查询先通过索引层(按上述的例子中,最多需要搜索10页)找到


    对应数据存在位置,就算是多条符合记录的数据,也是在旁边的数据位置中就能找到


                    非聚簇索引在大多数的情况下对该索引的查询操作性能比聚簇索引稍次,查询也先通过首层索引(按上述的例子中,最多搜索10


    页)找到对应第二层索引存在位置,由第二层索引层再找到数据的物理位置。


     


                    索引虽然可以增加查询速度,但也有以下缺陷,需要在设置时注意


    1.     占用空间,虽然索引块增长速度不如数据块那么急剧,但毕竟也是消耗空间的。


    2.     在select * 的访问语句时, 数据库会先搜索聚簇和非聚簇索引的索引块的索引,再搜索数据块,这种情况下表里完全不设索引的性能高于


    设了聚簇索引的性能(按上例要额外搜索10个页),设了聚簇的性能比设非聚簇的要好(按上例非聚簇要额外搜索20个页)

    展开全文
  • 索引的理解: 索引是对数据库表中的一列或多列的值进行排序的一种数据结构。 索引的作用就类似于书本的目录,新华字典的拼音,偏旁部首的首查字,可以快速的检索到需要 的内容,mysql在300万条记录性能就下降了,...
  • lucene4.6索引创建和搜索例子

    万次阅读 热门讨论 2013-12-23 14:50:35
    最近无事,闲来看了看lucene4.6,也来学习一下,写了些小例子总的来说lucene全文检索步骤大体上有两方面:索引过程和搜索过程,具体如下: 1.索引过程 创建IndexWriter,它的作用是用来写索引文件 可以将...
  • idea查看创建索引

    千次阅读 2019-04-22 14:54:54
    1 view里面选择DataBase 2 弹出的database里面选择+号添加数据库 3 以mysql为例子,创建数据库连接 ...5 test2表一共有4个字段,以col1为例创建索引,首先在新打开的console里面写一条wh...
  • -- 创建索引的表格create table testNoPK ( id int not null, name varchar(10) );-- 创建普通索引 create index IDX_testNoPK_Name on testNoPK (name);   给我老师的人工智能教程打call! ...
  • 基于lucene的案例开发:创建索引

    千次阅读 2015-01-19 14:49:24
    通过简单的事例,介绍了如何创建Lucene索引,同时还介绍了在索引创建过程中的几个核心类:IndexWriter、Directory、Analyzer、Document、Field。
  • ORACLE 创建索引示例

    千次阅读 2018-05-18 23:15:18
    create index MEMBER_ID_OF_GROUP_MEM_ACT on GROUP_MEMBER_OF_ACTIVITY(MEMBER_ID); create index MEMBER_ID_OF_GROUP_MEM_EMP on GROUP_MEMBER_OF_EMP(MEMBER_ID); create index MEMBER_ID_OF_GROUP_MEM_MANA on...
  • Mysql建表+创建索引

    千次阅读 2019-10-01 11:00:53
    创建表时可以直接创建索引,这种方式最简单、方便。其基本形式如下: CREATE TABLE 表名( 属性名 数据类型[完整性约束条件], 属性名 数据类型[完整性约束条件], ...... 属性名 数据类型 [ UNIQUE | ...
  • MYSQL索引的作用以及如何创建索引

    千次阅读 2019-06-27 14:58:13
    索引是什么,首先我们可以举个例子,字典大家应该都使用过,我们可以使用目录快速定位到所要查找的内容,那么索引跟目录的作用类似,在数据库表记录中,利用索引,可以快速过滤查找到数据记录。 一般的应用系统,...
  • 列值有NULL值创建索引

    千次阅读 2017-05-10 16:52:50
    如果where条件列查询目标SQL返回数据量比较少时,可以使用创建索引的方式来减少全表扫描的消耗。 例子:以ta表为例,在object_id上创建单键值B-Tree索引: 创建测试表: create table ta as select * from dba_...
  • 索引+索引的类型+创建索引

    千次阅读 2017-05-27 22:42:56
    索引 1在关系数据库中,索引是一种与表有关的数据库结构,它是除了表以外的另一个重要模式对象。 2索引建立在表的一列或多列上的辅助对象,目的是提高表中数据的访问速度. 3索引是表示数据的另一种方式,它...创建
  • MongoDB 创建地图索引及根据位置坐标查询地点小例子1:MongoDB 的安装参照博客:http://www.cnblogs.com/sweetchildomine/p/6397136.html可视化工具:本人用的是robomongo ,下载地址:https://robomongo.org/2:...
  • 如何在SQL创建索引

    千次阅读 2019-10-30 19:34:56
    我们通过一个简单的例子来开始教程,解释为什么我们需要数据库索引。假设我们有一个数据库表 Employee, 这个表有三个字段(列)分别是 Employee_Name、Employee_Age 和Employee_Address。假设表Employee 有上千行...
  • 利用SOLR从数据库创建索引

    万次阅读 2011-05-13 17:39:00
    利用SOLR从数据库创建索引
  • [搜索]ElasticSearch Java Api(一) -创建索引

    万次阅读 多人点赞 2016-06-19 23:25:52
    创建索引的第一步是要把对象转换为JSON字符串.官网给出了四种创建JSON文档的方法: 1.1手写方式生成 String json = "{" + "\"user\":\"kimchy\"," + "\"...
  • SQL Server 创建索引(index)

    千次阅读 2019-06-14 18:01:13
    索引的简介: create index 索引名称 on 表名称(字段名称) 索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书。 索引主要目的是...
  • Oracle 建立索引及SQL优化 数据库索引: 索引有单列索引 复合索引之说 如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引。数据库索引主要进行提高访问速度。 建设原则...
  • Oracle性能分析7:创建索引

    千次阅读 2014-09-17 17:45:39
    创建索引时,我们往往希望能够预估索引大小,以评估对现有工程环境的影响,我们也希望创建索引的过程能够最小化的影响我们正在运行的工程环境,并能查看索引的状况。 预估索引大小 预估索引大小,最好的办法是在...
  • SQLServer创建索引的5种方法

    万次阅读 2017-06-27 21:16:02
    前期准备:create table Employee ( ID int not null primary key, Name nvarchar(4), Credit_Card_ID varbinary(max));...go说明:本表上的索引,都会在创建下一个索引前删除。创建聚集索引方法 1、ALTER
  • 数据库操作--创建索引

    千次阅读 热门讨论 2015-03-08 20:15:31
    前段时间接到个任务,要在两秒内从1000万条数据中查询某一条数据是否存在。着实吓我一跳。...但是我要建立的表分区和例子上又不一样,需要动态的建立表分区,这就难了。搞了半天没搞好。后来想起来春哥

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 308,076
精华内容 123,230
关键字:

创建索引的例子