<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MySQL索引的應用

        來源:懂視網 責編:小采 時間:2020-11-09 07:38:01
        文檔

        MySQL索引的應用

        MySQL索引的應用:1.索引作用 在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。 例如,有3個未索引的表t1、t2、t3,分別只包含列c1、
        推薦度:
        導讀MySQL索引的應用:1.索引作用 在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。 例如,有3個未索引的表t1、t2、t3,分別只包含列c1、

        1.索引作用 在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。 例如,有3個未索引的表t1、t2、t3,分別只包含列c1、c

        1.索引作用
        在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。
        例如,有3個未索引的表t1、t2、t3,分別只包含列c1、c2、c3,每個表分別含有1000行數據組成,指為1~1000的數值,查找對應值相等行的查詢如下所示。

        SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
        此查詢結果應該為1000行,每行包含3個相等的值。在無索引的情況下處理此查詢,必須尋找3個表所有的組合,以便得出與WHERE子句相配的那些行。而可能的組合數目為1000×1000×1000(十億),顯然查詢將會非常慢。
        如果對每個表進行索引,就能極大地加速查詢進程。利用索引的查詢處理如下。
        (1)從表t1中選擇第一行,查看此行所包含的數據。
        (2)使用表t2上的索引,直接定位t2中與t1的值匹配的行。類似,利用表t3上的索引,直接定位t3中與來自t1的值匹配的行。
        (3)掃描表t1的下一行并重復前面的過程,直到遍歷t1中所有的行。
        在此情形下,仍然對表t1執行了一個完全掃描,但能夠在表t2和t3上進行索引查找直接取出這些表中的行,比未用索引時要快一百萬倍。
        利用索引,MySQL加速了WHERE子句滿足條件行的搜索,而在多表連接查詢時,在執行連接時加快了與其他表中的行匹配的速度。

        2.創建索引
        在執行CREATE TABLE語句時可以創建索引,也可以單獨用CREATE INDEX或ALTER TABLE來為表增加索引。
        (1).ALTER TABLE
        ALTER TABLE用來創建普通索引、UNIQUE索引或PRIMARY KEY索引。

        ALTER TABLE table_name ADD INDEX index_name (column_list)
        ALTER TABLE table_name ADD UNIQUE (column_list)
        ALTER TABLE table_name ADD PRIMARY KEY (column_list)

        其中table_name是要增加索引的表名,column_list指出對哪些列進行索引,多列時各列之間用逗號分隔。索引名index_name可選,缺省時,MySQL將根據第一個索引列賦一個名稱。另外,ALTER TABLE允許在單個語句中更改多個表,因此可以在同時創建多個索引。
        (2).CREATE INDEX
        CREATE INDEX可對表增加普通索引或UNIQUE索引。

        CREATE INDEX index_name ON table_name (column_list)
        CREATE UNIQUE INDEX index_name ON table_name (column_list)

        table_name、index_name和column_list具有與ALTER TABLE語句中相同的含義,索引名不可選。另外,不能用CREATE INDEX語句創建PRIMARY KEY索引。

        3.索引類型
        在創建索引時,可以規定索引能否包含重復值。如果不包含,則索引應該創建為PRIMARY KEY或UNIQUE索引。對于單列惟一性索引,這保證單列不包含重復的值。對于多列惟一性索引,保證多個值的組合不重復。
        PRIMARY KEY索引和UNIQUE索引非常類似。事實上,PRIMARY KEY索引僅是一個具有名稱PRIMARY的UNIQUE索引。這表示一個表只能包含一個PRIMARY KEY,因為一個表中不可能具有兩個同名的索引。
        下面的SQL語句對students表在sid上添加PRIMARY KEY索引。

        ALTER TABLE students ADD PRIMARY KEY (sid)

        4. 刪除索引
        可利用ALTER TABLE或DROP INDEX語句來刪除索引。類似于CREATE INDEX語句,DROP INDEX可以在ALTER TABLE內部作為一條語句處理,語法如下。

        DROP INDEX index_name ON talbe_name
        ALTER TABLE table_name DROP INDEX index_name
        ALTER TABLE table_name DROP PRIMARY KEY

        其中,前兩條語句是等價的,刪除掉table_name中的索引index_name。
        第3條語句只在刪除PRIMARY KEY索引時使用,因為一個表只可能有一個PRIMARY KEY索引,因此不需要指定索引名。如果沒有創建PRIMARY KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。
        如果從表中刪除了某列,則索引會受到影響。對于多列組合的索引,如果刪除其中的某列,則該列也會從索引中刪除。如果刪除組成索引的所有列,則整個索引將被刪除。

        5.查看索引

        mysql> show index from tblname;
        mysql> show keys from tblname;

          · Table
          表的名稱。
          · Non_unique
          如果索引不能包括重復詞,則為0。如果可以,則為1。
          · Key_name
          索引的名稱。
          · Seq_in_index
          索引中的列序列號,從1開始。
          · Column_name
          列名稱。
          · Collation
          列以什么方式存儲在索引中。在MySQL中,有值‘A’(升序)或NULL(無分類)。
          · Cardinality
          索引中唯一值的數目的估計值。通過運行ANALYZE TABLE或myisamchk -a可以更新。基數根據被存儲為整數的統計數據來計數,所以即使對于小型表,該值也沒有必要是精確的。基數越大,當進行聯合時,MySQL使用該索引的機會就越大。
          · Sub_part
          如果列只是被部分地編入索引,則為被編入索引的字符的數目。如果整列被編入索引,則為NULL。
          · Packed
          指示關鍵字如何被壓縮。如果沒有被壓縮,則為NULL。
          · Null
          如果列含有NULL,則含有YES。如果沒有,則該列含有NO。
          · Index_type
          用過的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
          · Comment
          更多評注。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        MySQL索引的應用

        MySQL索引的應用:1.索引作用 在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。 例如,有3個未索引的表t1、t2、t3,分別只包含列c1、
        推薦度:
        標簽: 使用 作用 應用
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 在线观看成人免费视频| 十九岁在线观看免费完整版电影| 国产h视频在线观看免费| 亚洲国产综合专区在线电影| 精品免费视在线观看| 亚洲国产精品久久| 99re在线这里只有精品免费| 亚洲综合日韩中文字幕v在线| 最近中文字幕高清免费中文字幕mv | 最近2019年免费中文字幕高清| 亚洲高清资源在线观看| 91精品国产免费网站| 亚洲精品成人网站在线播放| 久久精品亚洲中文字幕无码网站| a级毛片免费高清视频| 亚洲色偷偷综合亚洲AV伊人| 中文字幕永久免费视频| 国产aⅴ无码专区亚洲av| 最近新韩国日本免费观看 | 久久精品国产亚洲AV高清热| 曰批视频免费40分钟试看天天| 亚洲香蕉久久一区二区| 四虎影库久免费视频| 久久九九久精品国产免费直播| 亚洲妇熟XXXX妇色黄| h视频在线观看免费网站| 337p日本欧洲亚洲大胆人人| 亚洲精品国精品久久99热一| 131美女爱做免费毛片| 亚洲AV无码XXX麻豆艾秋| 亚洲精品无码久久千人斩| 无遮免费网站在线入口| 日日摸夜夜添夜夜免费视频| 亚洲成人在线网站| 好男人看视频免费2019中文| 精品免费久久久久国产一区 | 国产精品免费久久久久影院| 99久久亚洲精品无码毛片| 成年大片免费视频| 拍拍拍无挡视频免费观看1000| 久久精品国产亚洲av麻豆蜜芽|