索引的使用與資料庫中表的引擎有一定的關聯
索引的儲存的資料型別分為兩種:btree/hash
myisam/innodb 儲存型別只支援btree
memory/heap支援兩種
一般情況下,有以下幾種常用的索引:
普通索引: index--------- create table t1 (...... , index 索引名(列名))------沒有唯一性的限制
唯一索引:unique index 主鍵為一種特殊的唯一索引。因為主鍵不能為空,唯一索引是可以為空的--------------create table t2(......., unique index 索引名(列名))
單列索引:乙個表中可以有多個單列索引------------create table t3(......., indexsingleidx 索引名(列名)),上述兩種索引皆為單列索引
組合索引:乙個表的多個欄位上建立的索引,只有在查詢的字段中使用了這些欄位的左邊字段,才會使用該組合索引(遵循最左字首組合索引)
create table t4(......., indexmultiidx 索引名(列名))
全文索引:fulltext index(myisam支援)------create table t5(.......,fulltext indexfulltxtidx 索引名(列名))
空間索引:spatial create table t6(......., spatial indexspatidx 索引名(列名))
對索引進行增刪改查
使用alter table建立索引 alter table t1 add index 索引名(colname)
使用create table建立索引 create index index_name on tablename(colname)
使用alter table刪除索引 alter table t2 drop 索引名
使用drop table刪除索引 drop index index_name on t3
儲存的使用:
一、儲存過程的建立:
createprocedure calusersum()
begin
select sum(user_id),count(user_id) from fm_user;
end;
使用儲存: call 儲存名
一般情況下,為了區分儲存過程與mysql的結束符,我們可以使用delimiter關鍵字來改變mysql預設的結束符,儲存過程定義完畢之後,我們再使用「delimiter ;」將結束符還原
二、儲存函式的建立
mysql索引框架 MySQL架構和MySQL索引
1.mysql架構 1.1邏輯架構圖 1.1.1connection pool 連線池 管理緩衝使用者連線,執行緒處理等需要快取的需求。負責監聽對mysql server的各種請求,接收連線請求,所有連線請求到執行緒管理模組。每乙個連線上mysql server的客戶端請求都會被分配 或建立 乙個連...
mysql索引儲存形式 MySql索引儲存形式
聚簇索引 聚集索引 非聚簇索引 非聚集索引 是因為儲存引擎不同引起的,儲存引擎中innodb是聚簇索引 myisam是非聚簇索引,聚簇索引是資料與索引儲存在乙個起,非聚簇索引資料乙個檔案 索引乙個檔案,資料與索引不在乙個檔案中。mysql的索引以b tree的資料結構儲存在磁碟,預設儲存引擎為inn...
mysql索引儲存 mysql索引和儲存引擎
mysql索引為什麼採用b 樹而不用b樹 1 b 樹只有葉節點存放資料,其餘節點用來索引,而b樹是每個索引節點都會有data域 索引放磁碟中,磁碟io就會增多 2 b 樹所有的data域在葉子節點,並且所有葉子節點之間都有乙個鏈指標。這樣遍歷葉子節點就能獲得全部資料,這樣就能獲得區間訪問了。在資料庫...