面試Mysql的內容

2021-10-22 05:38:08 字數 1405 閱讀 7652

介紹各種型別的mysql索引。

1、普通索引

普通索引(由關鍵字key或index定義的索引)的唯一任務是加快對資料的訪問速度。因此,應該只為那些最經常出現在查詢條件(wherecolumn=)或排序條件(orderbycolumn)中的資料列建立索引。只要有可能,就應該選擇乙個資料最整齊、最緊湊的資料列(如乙個整數型別的資料列)來建立索引。

2、唯一索引

普通索引允許被mysql索引的資料列包含重複的值。比如說,因為人有可能同名,所以同乙個姓名在同乙個「員工個人資料」資料表裡可能出現兩次或更多次。

如果能確定某個資料列將只包含彼此各不相同的值,在為這個資料列建立索引的時候就應該用關鍵字unique把它定義為乙個唯一索引。這麼做的好處:一是簡化了mysql對這個索引的管理工作,這個索引也因此而變得更有效率;二是mysql會在有新記錄插入資料表時,自動檢查新記錄的這個欄位的值是否已經在某個記錄的這個欄位裡出現過了;如果是,mysql將拒絕插入那條新記錄。也就是說,唯一索引可以保證資料記錄的唯一性。事實上,在許多場合,人們建立唯一索引的目的往往不是為了提高訪問速度,而只是為了避免資料出現重複。

3、主索引

在前面已經反覆多次強調過:必須為主鍵欄位建立乙個索引,這個mysql索引就是所謂的「主索引」。主索引與唯一索引的唯一區別是:前者在定義時使用的關鍵字是primary而不是unique。

4、外來鍵索引

如果為某個外來鍵字段定義了乙個外來鍵約束條件,mysql就會定義乙個內部索引來幫助自己以最有效率的方式去管理和使用外來鍵約束條件。

5、復合索引

mysql索引可以覆蓋多個資料列,如像index(columna,columnb)索引。這種索引的特點是mysql可以有選擇地使用乙個這樣的索引。如果查詢操作只需要用到columna資料列上的乙個索引,就可以使用復合索引index(columna,columnb)。不過,這種用法僅適用於在復合索引中排列在前的資料列組合。比如說,index(a,b,c)可以當做a或(a,b)的索引來使用,但不能當做b、c或(b,c)的索引來使用。

6、索引的長度

在為char和varchar型別的資料列定義mysql索引時,可以把mysql索引的長度限制為乙個給定的字元個數(這個數字必須小於這個欄位所允許的最大字元個數)。這麼做的好處是可以生成乙個尺寸比較小、檢索速度卻比較快的索引檔案。在絕大多數應用裡,資料庫中的字串資料大都以各種各樣的名字為主,把索引的長度設定為10~15個字元已經足以把搜尋範圍縮小到很少的幾條資料記錄了。在為blob和text型別的資料列建立索引時,必須對索引的長度做出限制;mysql所允許的最大索引全文索引文字欄位上的普通索引只能加快對出現在字段內容最前面的字串(也就是字段內容開頭的字元)進行檢索操作。如果欄位裡存放的是由幾個、甚至是多個單詞構成的較大段文字,普通索引就沒什麼作用了。這種檢索往往以的形式出現,這對mysql來說很複雜,如果需要處理的資料量很大,響應時間就會很長。

**:**:

**:

面試準備的內容

j a 多執行緒 併發 集合反射使用 core libraries j a 7 8 9 10 11語言最新變化 設計模式 23種設計模式 設計原則 開閉原則 里斯轉換 倒置 j a 面試題 python 裝飾器生成器 列表專案實戰 android view 的繪製展示 handler message...

mysql內容 MySQL 基礎內容

建立資料庫 對於表的操作需要先進入庫 use 庫名 建立乙個名為 inana db 的資料庫,資料庫字元編碼指定為 utf8 create database inana db character set utf8 drop database inana db 刪除 庫名為samp db的庫 show...

2019 8 13面試內容

1 基本資料型別 5種 boolean string number undefined object 物件,null 2 閉包原理,優缺點 3 變數 機制 4 如何判斷ie瀏覽器 5 有沒有嘗試自己封裝ajax 寫出原生ajax 6 react多層父元件props傳遞給子元件,用context管理,...