<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      mysql索引詳解

      一、什么是索引?
      索引用來快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹的形式保存。如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄。表里面的記錄數量越多,這個操作的代價就越高。如果作為搜索條件的列上已經創建了索引,MySQL無需掃描任何記錄即可迅速得到目標記錄所在的位置。如果表有1000個記錄,通過索引查找記錄至少要比順序掃描記錄快100倍。   

      二、索引的類型
      MySQL提供多種索引類型供選擇:

      普通索引
      這是最基本的索引類型,而且它沒有唯一性之類的限制。普通索引可以通過以下幾種方式創建:
      創建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);
      修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
      創建表的時候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );

      唯一性索引
      這種索引和前面的“普通索引”基本相同,但有一個區別:索引列的所有值都只能出現一次,即必須唯一。唯一性索引可以用以下幾種方式創建:
      創建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);
      修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表);
      創建表的時候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );

          主鍵
      主鍵是一種唯一性索引,但它必須指定為“PRIMARY KEY”。如果你曾經用過AUTO_INCREMENT類型的列,你可能已經熟悉主鍵之類的概念了。主鍵一般在創建表的時候指定,例如“CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) ); ”。但是,我們也可以通過修改表的方式加入主鍵,例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表); ”。每個表只能有一個主鍵。

      全文索引
      MySQL從3.23.23版開始支持全文索引和全文檢索。在MySQL中,全文索引的索引類型為FULLTEXT。全文索引可以在VARCHAR或者TEXT類型的列上創建。它可以通過CREATE TABLE命令創建,也可以通過ALTER TABLE或CREATE INDEX命令創建。對于大規模的數據集,通過ALTER TABLE(或者CREATE INDEX)命令創建全文索引要比把記錄插入帶有全文索引的空表更快。本文下面的討論不再涉及全文索引,要了解更多信息,請參見MySQL documentation。

      索引的缺點
      到目前為止,我們討論的都是索引的優點。事實上,索引也是有缺點的。

      首先,索引要占用磁盤空間。通常情況下,這個問題不是很突出。但是,如果你創建每一種可能列組合的索引,索引文件體積的增長速度將遠遠超過數據文件。如果你有一個很大的表,索引文件的大小可能達到操作系統允許的最大文件限制。

      第二,對于需要寫入數據的操作,比如DELETE、UPDATE以及INSERT操作,索引會降低它們的速度。這是因為MySQL不僅要把改動數據寫入數據文件,而且它還要把這些改動寫入索引文件。

      索引與主鍵的主要區別有
      主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。

      主鍵創建后一定包含一個唯一性索引,唯一性索引并不一定就是主鍵。

      唯一性索引列允許空值,而主鍵列不允許為空值。

      主鍵列在創建時,已經默認為空值 + 唯一索引了。

      主鍵可以被其他表引用為外鍵,而唯一索引不能。

      一個表最多只能創建一個主鍵,但可以創建多個唯一索引。

      主鍵更適合那些不容易更改的唯一標識,如自動遞增列、身份證號等。

      在 RBO 模式下,主鍵的執行計劃優先級要高于唯一索引。 兩者可以提高查詢的速度。

       

      -- 創建一張僅包含主鍵和唯一索引的表

      CREATE TABLE test

      (PrimaryKey VARCHAR2(20),

        UniqueKey  VARCHAR2(20)

      );

      -- 分別創建主鍵和唯一索引,語法不同

      ALTER TABLE test ADD CONSTRAINT test_PrimaryKey PRIMARY KEY (PrimaryKey);

      CREATE UNIQUE INDEX test_UniqueKey ON test (UniqueKey);

      -- 在 USER_INDEXES 中可以看到兩個索引名稱

      SELECT table_name,table_type,index_name,index_type,uniqueness

        FROM USER_INDEXES

        WHERE TABLE_NAME='TEST';

       

       

      -- 在 USER_IND_COLUMNS 中可以看到兩個索引字段名稱

      SELECT table_name,index_name,column_name,column_position

        FROM USER_IND_COLUMNS

        WHERE TABLE_NAME='TEST';

       

      -- 在 USER_CONSTRAINTS 僅可以看到主鍵約束名稱

      SELECT table_name,constraint_name,constraint_type

        FROM USER_CONSTRAINTS

        WHERE TABLE_NAME='TEST';

       

       

      -- 在 USER_CONS_COLUMNS 僅可以看到主鍵約束字段名稱

      SELECT table_name,constraint_name,column_name,position

        FROM USER_CONS_COLUMNS

        WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME

                                   FROM USER_CONSTRAINTS

                                   WHERE TABLE_NAME='TEST');

       

       

      -- 為唯一索引增加一個非空約束

      ALTER TABLE test MODIFY UniqueKey NOT NULL;

       

      -- 在 USER_CONSTRAINTS 僅可以看到主鍵約束名稱和非空約束名稱

      SELECT table_name,constraint_name,constraint_type

        FROM USER_CONSTRAINTS

        WHERE TABLE_NAME='TEST'

       

      -- 在 USER_CONS_COLUMNS 僅可以看到主鍵約束字段名稱和非空約束字段名稱

      SELECT table_name,constraint_name,column_name,position

        FROM USER_CONS_COLUMNS

        WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME

                                   FROM USER_CONSTRAINTS

                                  WHERE TABLE_NAME='TEST')

      posted @ 2018-11-07 08:48  方白逸  閱讀(644)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲一级特黄大片一级特黄| 虎白女粉嫩尤物福利视频| 国产系列高清精品第一页 | 免费午夜无码片在线观看影院| 一级毛片网| 无码国模国产在线观看免费| 日韩人妻精品中文字幕专区| 精品无码国产日韩制服丝袜| 日韩精品一区二区三区激情视频 | 免费十八禁一区二区三区| 国产精品福利自产拍久久| 汉沽区| 无码av片在线观看免费| 国产涩涩视频在线观看| 亚洲一区二区乱码精品| 免费人成在线观看网站| 好深好湿好硬顶到了好爽| 丁香五月亚洲综合在线| 北岛玲中文字幕人妻系列| 国产精品一区二区久久精品| 一卡2卡三卡4卡免费网站| 狼色精品人妻在线视频| 欧美精品久久天天躁| 亚洲精品一区二区妖精| 国产乱人伦av在线无码| 亚洲国产色婷婷久久99精品91| 国产免费性感美女被插视频| 极品蜜臀黄色在线观看| 香蕉EEWW99国产精选免费| 综合在线 亚洲 成人 欧美| 99精品久久久中文字幕| 国产av中文字幕精品| 亚洲av影院一区二区三区| 日韩人妻无码精品久久| 天堂中文在线资源| 疯狂做受xxxx高潮视频免费| 亚洲AV成人片不卡无码| 国产在线永久视频| 亚洲国产成人无码影片在线播放| 亚洲国产成人精品女久久| 亚洲日本国产精品一区|