辛星讓mysql跑得更快第二節之索引上部分

來源:互聯網
上載者:User

標籤:辛星   mysql   最佳化   索引   

        如果把我們的資料庫資訊當做一本書或者一個字典,那麼索引可以理解為它的目錄,如果我們建立一個優秀的目錄,那麼我們檢索資訊就會快得多,如果我們建立一個渣渣索引,也有可能拖垮整個系統。

        索引我們分為四類,通常分為四大類型,即主鍵索引、全文索引、唯一索引、普通索引,這是按照索引的類型來分的。所謂主鍵索引,那就是當我們建立一張表的時候,如果我們指定了一個主鍵,那麼它就自動成為主鍵索引,比如SQL語句如下(這裡的id就自動成為了主鍵索引):

create table xin(id int unsigned primary key auto_increment,name   varchar(32) not null default '');

        一般來說,對於普通索引,我們可以在建立表的時候指定索引,也可以在建立表的時候指定索引,下面我們以縣建立表然後再添加索引為例,看代碼:

#建立一個資料表create table xin(id int unsigned,name   varchar(32) not null default '');#在該表上建立一個索引create index xiaohei  on xin(id);
          這裡說一下把,這裡的添加索引的格式是:create   index   索引名   on  表名(列名);

          然後說一下全文索引,所謂全文索引,主要是從資料庫中搜尋字串資訊的,比如我們逛很多論壇,它的搜尋功能就特別需要全文索引了,我們的全文索引主要針對檔案、文本的索引,而且目前來說,全文索引依然只對引擎MyIASM有效,咱們指定一下表的引擎就可以了,看下面代碼:

#建立一個文章表,並且設定索引create table article(id int primary key,title varchar(200) not null ,body  text,fulltext(title,body)) engine = myisam ;
     那麼我們使用該全文索引的時候應該使用使用match和against,看下面操作:

#按照這種方式我們可以快速的使用全文索引來尋找內容select * from article where match(title,body)  against ('xin');

   但是mysql內建的這個全文索引並不支援中文,我們可以考慮使用sphinx來支援中文,這裡先不介紹。

    對於unique索引,也就是唯一索引,我們直接在在列級完整性條件約束後面加一個unique即可,這裡需要注意的是被unique修飾的欄位是可以為空白的,而且是可以有多個為空白的,當然也可以像建立一個普通index那樣去建立,但是此時的index必須在前面加上一個unique修飾符。

      對於索引的刪除,可以使用【alter  table  表名 drop  index  索引名】,但是我感覺我們使用【drop   index  索引名  on  表名】更好一些。

      那麼我們怎麼看一個表的索引呢,我們可以用【desc 表名】的方式來查看索引,我們還可以使用【show index  from  表名】或者【show  index  from  表名】來查看一個表的索引。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.