<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Mysql索引必知必會(huì)!

          共 1498字,需瀏覽 3分鐘

           ·

          2022-01-14 22:59

          什么是索引

          「索引用來(lái)排序數(shù)據(jù)以加快搜索和排序操作的速度」。主鍵數(shù)據(jù)總是排序的, 因此,按主鍵檢索特定行總是一種快速有效的操作。但是,搜索其他列中的值通常效率不高。這時(shí)候我們可以使用索引,索引就是根據(jù)表中的一列或若干列按照一定順序建立的列值與記錄行之間的對(duì)應(yīng)關(guān)系表,實(shí)質(zhì)上是一張描述索引列的列值與原表中記錄行之間一一對(duì)應(yīng)關(guān)系的有序表。

          「索引特點(diǎn):」

          • 索引提高檢索的性能,但降低了數(shù)據(jù)增刪改的性能。在執(zhí)行這些操作時(shí),DBMS 必須動(dòng)態(tài)地更新索引。
          • 索引數(shù)據(jù)可能要占用大量的存儲(chǔ)空間。
          • 并非所有數(shù)據(jù)都適合做索引。取值不多的數(shù)據(jù)(如地區(qū))不如具有更多可能值的數(shù)據(jù)(如姓名),能夠更加體現(xiàn)索引的價(jià)值。
          • 索引用于數(shù)據(jù)過(guò)濾和數(shù)據(jù)排序。如果你經(jīng)常以某種特定的順序排序數(shù)據(jù),則該數(shù)據(jù)可能適合做索引。
          • 可以在索引中定義多個(gè)列(例如,國(guó)家 + 城市)。

          普通索引

          在創(chuàng)建表的時(shí)創(chuàng)建普通索引。

          DROP?TABLE?IF?EXISTS?student;
          CREATE?TABLE?student
          (????
          ??id?INT(11),
          ??stu_name?VARCHAR(10)
          )

          直接創(chuàng)建。

          CREATE?INDEX?stu_id?ON?student(id);

          修改表時(shí)創(chuàng)建。

          ALTER?TABLE?student?ADD?INDEX?stu_id(id);

          刪除索引。

          DROP?INDEX?stu_id?ON?student;

          唯一索引

          唯一索引列值必須唯一,但允許有空值(注意和主鍵不同)。如果是組合索引,則列值的組合必須唯一。事實(shí)上,在許多場(chǎng)合,創(chuàng)建唯一索引的目的往往不是提高訪問(wèn)速度,而是為了避免數(shù)據(jù)出現(xiàn)重復(fù)。

          CREATE?UNIQUE?INDEX?stu_id?ON?student(id);

          全局索引

          全文索引只能作用在 CHARVARCHARTEXT、類型的字段上。創(chuàng)建全文索引需要使用 FULLTEXT 參數(shù)進(jìn)行約束。

          CREATE?FULLTEXT?INDEX?s_name?ON?student(stu_name);

          多列索引

          多列索引,即在數(shù)據(jù)表的多個(gè)字段上創(chuàng)建索引。

          CREATE?TABLE?student
          (????
          ??id?INT(11),
          ??stu_name?VARCHAR(10),
          ??email?VARCHAR(20),
          ??INDEX?info(stu_name,?email)
          );

          在多列索引中,只有查詢條件中使用了這些字段中的第一個(gè)字段(即上面示例中的 stu_name 字段),索引才會(huì)被使用(「最左前綴’原則」)。如果沒(méi)有用到第一字段,則索引不起任何作用。

          --?使用索引
          SELECT?*?FROM?student?WHERE?stu_name?=?'張三';
          SELECT?*?FROM?student?WHERE?stu_name?=?'李四'?AND?email?=?'[email protected]';
          --?未使用索引
          SELECT?*?FROM?student?WHERE?email?=?'[email protected]';



          相關(guān)閱讀:


          瀏覽 38
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色婷婷五月天激情 | 欧美女孩性爱 | 俺去俺来也在线WWW色官方 | 操屄网站| 欧美艹逼视频 |