Mysql基礎 索引

2022-06-06 13:09:10 字數 2531 閱讀 1970

唯一的標識,主鍵不可重複,只能有乙個列作為主鍵

避免重複的列出現,唯一索引可以重複,多個列都可以標識為唯一索引

預設的,index/key關鍵字來設定

在特定的資料庫引擎下才有,myisam

--

*****索引基礎語法*****

--定義:索引(index)是幫助mysql高效獲取資料的資料結構。

--本質:索引就是資料結構

--索引的使用

--1.在建立表的時候給字段增加索引

--2.建立完畢後,增加索引

--顯示所有的索引資訊

show index

from

student

--增加乙個全文索引(索引名) 列名

alter

table school.student add

fulltext `studentname`(studentname);

--explain分析sql執行的狀況

explain select

*from student;--

非全文索引

explain

select

*from student where match(studentname) against('

劉');

--

*****測試索引*****==

create

table

id bigint(20) unsigned not

null

auto_increment,

`name`

varchar(50) default

'' comment '

使用者暱稱',

email

varchar(50) not

null comment '

使用者郵箱',

phone

varchar(20) default

'' comment '

手機號'

, gender

tinyint(4) unsigned default'0

' comment'

性別(0:男 1:女)',

age

tinyint(4) default'0

' comment '年齡'

, create_time

datetime

default

current_timestamp

, update_time

timestamp

null

default

current_timestamp

onupdate

current_timestamp

,

primary

key(id)

)engine

=innodb default charset=utf8mb4 comment=''

--插入100萬資料.

delimiter $$

--寫函式之前必須要寫,標誌

create

function

mock_data ()

returns

intdeterministic

--deterministic為確定性函式

begin

declare num int

default

1000000

;

declare i int

default0;

while i<

num do

insert

使用者',i),'

[email protected]

','123456789

',floor(rand()*

2));

set i=i+1;

endwhile

;

return

i;end

;select mock_data() --

執行此函式 生成一百萬條資料,用了48秒才跑完

--不加索引前

select*'

使用者9999

';--

0.993sec

--加索引 id_表名_欄位名

--語法:create index 索引名 on 表(字段)

create

注:在執行建立索引過程中,會給每條資料加索引

select*'

使用者9999

';--

0.001s

原因: 不加索引時,要查詢表中某個資料時,需要遍歷才能找到,因此所找資料越大,需要時間越大

加索引後,是在建立索引時給每條資料都加了對應索引,因此他的原理就是,當你查某條資料時,它本質僅僅是搜尋了一次就可以實現了,因此大大的節省了時間

mysql索引基礎 Mysql 索引基礎

什麼是索引?為什麼要建立索引?索引,其實就是目錄。索引,用於快速找出在某個列中有某個特定值的行。不使用索引,mysql必須從第一條記錄開始查詢整張表,直到找出相關的行,那麼表越大,查詢資料所花費的時間就越多。假如表中查詢的列有乙個索引 目錄 mysql能夠快速定位到達乙個位置去搜尋資料檔案,而不必查...

mysql索引基礎

1.建立索引 alter table table name add index index name column list alter table table name add unique index name column list alter table table name add pri...

MySQL索引基礎

索引是儲存引擎用於快速找到記錄的一種資料結構。索引對於良好的效能非常關鍵。然而索引經常被誤解,好的索引能夠輕易將查詢效能提高幾個數量級,糟糕的索引則會導致各種問題。看一本書的時候,一般會先看書的目錄,然後找到對應的頁碼。在mysql中,儲存引擎用類似的方法使用索引,先在索引中找到對應值,然後根據匹配...