大資料基礎 MySQL索引型別簡介

2021-10-12 17:35:34 字數 2753 閱讀 3418

涉及到資料儲存,傳統的關係型資料庫,始終是不可忽視的一部分,而基於關係型資料庫的資料管理操作,就不得不提到索引的概念。今天的大資料基礎分享,我們以mysql為例,來講講mysql索引型別。

總體來說,mysql索引,分為普通索引、唯一索引、主鍵索引、組合索引、全文索引幾個類別。

最基本的索引,它沒有任何限制,用於加速查詢。

建立方法:

a. 建表的時候一起建立

create table mytable ( name varchar(32) , index index_mytable_name (name) );

b. 建表後,直接建立索引

create index index_mytable_name on mytable(name);

c. 修改表結構

alter table mytable add index index_mytable_name (name);

注:如果是字串字段,還可以指定索引的長度,在列命令後面加上索引長度就可以了(例如:name(11))

索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

建立方法:

a. 建表的時候一起建立

create table mytable ( `name` varchar(32) , unique index_unique_mytable_name (`name`) );

b. 建表後,直接建立索引

create unique index index_mytable_name on mytable(name);

c. 修改表結構

alter table mytable add unique index index_mytable_name (name);

注:如果是字串字段,還可以指定索引的長度,在列命令後面加上索引長度就可以了(例如:name(11))

是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值。一般是在建表的時候同時建立主鍵索引。

建立方法:

a. 建表的時候一起建立

create table mytable ( `id` int(11) not null auto_increment , `name` varchar(32) , primary key (`id`) );

b. 修改表結構

alter table test.t1 add constraint t1_pk primary key (id);

注:如果是字串字段,還可以指定索引的長度,在列命令後面加上索引長度就可以了(例如:name(11))

指多個欄位上建立的索引,只有在查詢條件中使用了建立索引時的第乙個字段,索引才會被使用。使用組合索引時遵循最左字首集合。

建立方法:

a. 建表的時候一起建立

create table mytable ( `id` int(11) , `name` varchar(32) , index index_mytable_id_name (`id`,`name`) );

b. 建表後,直接建立索引

create index index_mytable_id_name on mytable(id,name);

c. 修改表結構

主要用來查詢文字中的關鍵字,而不是直接與索引中的值相比較。

fulltext索引跟其它索引大不相同,它更像是乙個搜尋引擎,而不是簡單的where語句的引數匹配。

fulltext索引配合match against操作使用,而不是一般的where語句加like。

它可以在create table,alter table ,create index使用,不過目前只有char、varchar,text 列上可以建立全文索引。

建立方法:

a. 建表的時候一起建立

create table `article` ( `id` int(11) not null auto_increment , `title` char(250) not null , `contents` text null , `create_at` int(10) null default null , primary key (`id`), fulltext (contents) );

b. 建表後,直接建立索引

create fulltext index index_article_contents on article(contents);

c. 修改表結構

alter table article add fulltext index index_article_contents (contents);

需要注意的是,雖然索引可以增加查詢資料,但更新、建立或者刪除索引,也需要維護索引,會導致效能會受影響,因此,索引也不能建立太多。

在大資料開發與大資料分析任務當中,都不免與資料儲存管理操作發生關係,有一定的mysql基礎,對於後續的學習很有必要。

mysql 索引 簡書 MySQL 基礎之索引

mysql 索引 索引索引用於快速查詢具有特定列值的行。如果沒有索引,mysql必須從第一行開始,然後讀取整個表以查詢相關行。表越大,成本越高。如果表中有相關 列的索引,mysql可以快速確定要在資料檔案中間尋找的位置,而無需檢視所有資料。這比按順序讀取每一行要快得多。類似於字典中的目錄,查詢字典內...

mysql 索引 簡書 MySQL 索引

簡介 索引用於快速找出在某個列中有一特定值的行,不使用索引,mysql必須從第一條記錄開始讀完整個表,直到找出相關的行,表越大,查詢資料所花費的時間就越多。如果表中查詢的列有乙個索引,mysql能夠快速到達乙個位置去搜尋資料檔案,而不必檢視所有資料,那麼將會節省很大一部分時間。使用原則 索引底層使用...

mysql索引簡談

mysql索引簡談 一 什麼是索引 就好比我們在看一本書的時候,有目錄的話,我們可以快速定位到想看的地方,而沒有目錄的話,我們只能一頁一頁地翻。索引就像目錄,有了索引,資料庫可以快速查詢到目標內容,而不必查詢整個資料庫表,但是如果沒有的話,資料庫只能一行一行地遍歷資料。create table t ...