PS:把昨天的學習内容補上...發一下昨天學的東西....五月三日。。。繼續學習資料庫...
學習内容:
索引....
索引的優點:
1.通過建立唯一索引,可以保證資料庫每行資料的唯一性...
2.使查找的速度明顯加快...
3.當使用分組和排序進行查詢時,可以縮短時間...
索引的缺點:
1.維護索引需要耗費資料庫的資源...
2.索引需要占用磁盤空間...
3.對表進行增删改的時候,由于索引的存在,時間會有所增加...
索引的分類...
普通索引和唯一索引...
普通索引和唯一索引大緻相同,都是屬于b-tree結構....唯一不同點就是唯一索引的資料列可以為空,并且每一行的索引列的資料唯一...
單列索引和複合索引...
單列索引就是定義一個索引的參數是唯一一個,複合索引就是定義索引的時候包含的參數可以是多個...并且複合索引的查詢必須要使用第一個字段,否則會産生不走索引的情況...原因是複合索引遵循最左字首集合...
全文索引
全文索引就是定義索引的列上支援值的全文查找,允許在這個列上插入重複值和空值,全文索引可以在字元或者文本上進行定義...存儲引擎為Myisam...
空間索引
空間索引必須在myisam表進行建立...是對空間的資料類型的字段建立的索引..空間資料類型有四種geometry,point,linestring,polygon...空間索引使用關鍵字spatial進行擴充...(說實話,我也不完全清楚空間索引到底能用在什麼地方)...
建立索引的語句....
普通索引:
顯示資料會有很多的屬性..簡單的介紹一下...
id:第幾個..select_type:表示查詢語句select的複雜程度..table:表格名稱...type:通路類型..possible_key:顯示索引...key:索引的個數...
key_len:顯示使用索引的位元組數...ref:顯示哪個列被用于索引查找...rows:找到索引所要讀取的行數...extra:表示不适合在列中顯示,但是又很重要的額外資訊...
唯一索引:
唯一索引列的索引值必須唯一,如果是複合索引,複合索引的列組合的值也必須唯一...
使用explain查詢語句...
全文索引...
Fulltext索引可以用于全文索引...隻有myisam存儲引擎支援全文索引..全文索引不支援過濾索引..
空間索引:空間索引,用于地理空間類型...自己弄得也不是很明白...是以在這裡不進行介紹,避免誤人子弟...
在已有的表中去加入索引....
兩種方式:
删除索引:
注意:anto_increment 限制字段的唯一索引是不允許被删除的....
無論是添加了索引還是删除了索引,我們都可以使用shou create table table_name來檢視資料表建立的情況....