mysql索引學習

2021-10-12 01:37:30 字數 1348 閱讀 6767

空間換時間

select * from student where name =

'tom'

若 name 字段沒有索引:full table scan

若 name 欄位有索引:減少scan的數目

基於某一列建立,由某一列上的資料組成。

create index 

on students

(name)

alter table table_name add index index_name on (

column

(length)

)

create table `table` (

`id` int(11

) not null auto_increment ,

`name` char

(255

) character not null ,

primary key (`id`)

, index index_name (

name

(length)

))

show index from table_name
drop index [index_name] on table
我們平時說的索引,如果沒有特別指明,都是指b樹結構組織的索引。其中聚集索引、次要索引、覆蓋索引、復合索引、字首索引、唯一索引預設都是用b+樹索引,簡稱索引。除了b+樹外類似索引外,還有雜湊索引等等

mysql 是磁碟裡一頁一頁去取資料的

innodb 預設是 一頁=16kb 20b 一頁資料全部取出來,放在記憶體中 節省了磁碟io

頁的資料結構

走索引和全表掃瞄如何比較?

通過explain進行驗證

create index idx_t1_bcd on t1(b,c,d); ------bcd索引—>bcd排序---->b+樹

資料頁的冗餘

select * from t1 order by b,c,d; —索引 排序0+回表1

不用回表+排序

mysql索引學習

一 索引建立的三個方法 1 建表時增加索引create table create table forindex id int auto increment name varchar 30 not null,age tinyint,idcard varchar 18 unique,gender tin...

MySQL索引學習

索引是幫助mysql搞笑獲取資料的資料結構,即排好序的快速查詢資料結構。優點 缺點 普通索引 基本的索引型別,值可以為空,沒有唯一性限制。唯一索引 索引列的值必須唯一,允許有空值。主鍵索引 一種唯一性索引,必須指定為primary key,乙個表只能有乙個主鍵,不允許有空值。組合索引 由多個字段建立...

mysql索引怎麼學 mysql學習 索引

在平時開發過程中寫sql時,我們通常都不太關心sql的效能,只有能給查出來資料,sql的執行速度不是太慢就不會去管它了。但是開發時期的資料量往往都不是太大,很多效能問題只有在生產環境中才會發現,如 資料過多 sql關聯了太多的表,使用了太多的join 或者建立了索引,但是索引失效的問題。所以要解決這...