主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。
主鍵建立後一定包含乙個唯一性索引,唯一性索引並不一定就是主鍵。
唯一性索引列允許空值,而主鍵列不允許為空值。
主鍵列在建立時,已經預設為空值 ++ 唯一索引了。
乙個表最多只能建立乙個主鍵,但可以建立多個唯一索引。
主鍵更適合那些不容易更改的唯一標識,如自動遞增列、身份證號等。
主鍵可以被其他表引用為外來鍵,而唯一索引不能。
使用者可以在多個列上建立索引,這種索引叫做復合索引(組合索引)。
就是幾個字段聯合在一起組成乙個索引.復合索引的建立方法與建立單一索引的方法完全一樣。
但復合索引在資料庫操作期間所需的開銷更小,可以代替多個單一索引。
當表的行數遠遠大於索引鍵的數目時,使用這種方式可以明顯加快表的查詢速度。
當資料多且字段值有相同的值得時候用普通索引。
當欄位多且字段值沒有重複的時候用唯一索引。
當有多個欄位名都經常被查詢的話用復合索引。
普通索引不支援空值,唯一索引支援空值。
但是,若是這張表增刪改多而查詢較少的話,就不要建立索引了,因為如果你給一列建立了索引,那麼對該列進行增刪改的時候,都會先訪問這一列的索引,
若是增,則在這一列的索引內以新填入的這個欄位名的值為名建立索引的子集,
若是改,則會把原來的刪掉,再添入乙個以這個欄位名的新值為名建立索引的子集,
若是刪,則會把索引中以這個字段為名的索引的子集刪掉。
所以,會對增刪改的執行減緩速度,
所以,若是這張表增刪改多而查詢較少的話,就不要建立索引了。
更新太頻繁地字段不適合建立索引。
不會出現在where條件中的字段不該建立索引。
索引的使用
1 索引作用 在索引列上,除了上面提到的有序查詢之外,資料庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當資料量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。例如,有3個未索引的表t1 t2 t3,分別只包含列c1 c2 c3,每個表分別含有1000行資料組成,指為1...
索引的使用
1.建立表 create table zztest id number not null,service tpyeid varchar2 22 totalprice number,constraint test pk primary key id 2.建立索引 create index testna...
索引的使用
資料庫表的資訊是存在在檔案中的,每個檔案中有很多記錄,你新增一條記錄,檔案中就會多一條記錄。如果要查詢一條記錄怎麼查詢呢?你會開啟檔案讀取檔案內容,然後看看是不是你要的記錄,查詢任何記錄都要從前向後去比較。就像乙個房間有很多人,你知道要找的人在這個房間,但是具體在什麼位置你不知道,你只有乙個乙個看,...