MySQL索引的基本使用

2021-10-04 19:41:09 字數 3275 閱讀 7701

1.了解索引及其使用

2.熟悉常見的索引種類

3.掌握索引的基本使用【重點】

4.掌握索引的實戰經驗

索引是一種特殊的資料結構,類似於圖書的目錄,他能夠極大地提公升資料庫查詢效率。

如果沒有索引,在查詢資料時必須掃瞄表中的所有記錄才能找出符合條件的記錄,這種

【全表掃瞄的查詢效率非常低】

舉例:樓層索引,字母索引

常見索引種類:

需要注意的是,不是索引越多越好

檢視索引

mysql>

show

index

from employee\g;結果*

****

****

****

****

****

****

**1.row**

****

****

****

****

****

****

*table: employee

non_unique: 0

key_name: primary

seq_in_index: 1

column_name: id

collation: a

cardinality: 13

sub_part: null

packed: null

null:

index_type: btree

comment:

index_comment:

visible: yes

expression: null

1row

inset

(0.00 sec)

error:

no query specified

查名字是墨菲的資料

mysql>

explain

select

*from employee where name=

'墨菲'\g;**

****

****

****

****

****

****

*1.row***

****

****

****

****

****

****

id: 1

select_type: ******

table: employee

partitions: null

type: all

possible_keys: null

key: null

key_len: null

ref: null

rows: 13

filtered: 10.00

extra: using

where

1row

inset

,1 warning (

0.00 sec)

建立乙個索引

mysql>

create

index indexname on employee(name)

;query ok,

0rows affected (

11.06 sec)

records: 0 duplicates: 0

warnings: 0

重新檢視墨菲資料

mysql>

explain

select

*from employee where name=

'墨菲'\g;**

****

****

****

****

****

****

*1.row***

****

****

****

****

****

****

id: 1

select_type: ******

table: employee

partitions: null

type: ref

possible_keys: indexname

key: indexname

key_len: 123

ref: const

rows: 1

filtered: 100.00

extra: null

1row

inset

,1 warning (

0.00 sec)

查詢效能得到了極大的提公升

刪除索引:

mysql>

drop

index indexname on employee;

query ok,

0rows affected (

2.68 sec)

records: 0 duplicates: 0

warnings: 0

查詢有一百萬資料的測試表username=

'user_0008888'

select

*from test_user where username=

'user_0008888'

;給其建立乙個索引,

create

index idx_username on test_user(username)

;這個過程是很慢的,因為有一百萬條記錄

然後再去查詢一次,發現查詢時間大大縮短

select

*from test_user where username=

'user_0008888'

;但是如果用like去查詢,執行的仍然是全表掃瞄

select

*from test_user where username like

'%user_0008888%'

;所以說不是建了索引查詢就一定快,要看我們如何使用。

MySql索引基本

索引用於快速找出在某個列中有一特定值的行。如果不使用索引,需要遍歷整張表,表越大查詢耗時越大 mysql中的索引的儲存型別有兩種 btree hash。具體實現機制參照另一篇部落格 優點 缺點 使用原則 1.更新頻繁的表應該避免過度索引,對查詢頻繁的字段應該建立索引 2.資料量小的表不需要索引 3....

Mysql基本使用原理和索引型別

1.建立使用者 建立使用者的三種方法 1 insert into mysql.user host,user,password values localhost hadoop password hadoop 2 create user hadoop localhost identified by ha...

mysql索引的基本操作

1.建立表時新增索引 create table user id int,name varchar 30 age int,not null,code text not null,fulltext name,index ind code primary key id 2.新增primary key 主鍵...