mysql資料庫的優化和建立索引

2021-10-03 05:18:52 字數 2801 閱讀 1011

增加資料庫的穩定性

優化使用者體驗

–檢視sql是否使用索引,前面加上explain即可

explain出來的資訊有10列,分別是id,select_type,tabl,type,possible_keys,key,key_len,ref,rows,extra

概要描述:

id:選擇識別符號

select_type:表示查詢的型別

table:輸出結果集的表

partitions:匹配的表

type:表示表的連線型別

possible_keys:表示查詢時,可能使用的索引

key:

表示實際使用的索引

key_len:索引欄位的長度

ref:索引欄位的長度

ref:列與索引的比較

rows:掃瞄出的行數(估算的行數)

filtered:按表條件過濾的行百分比

extra:執**況的描述和說明

對錶訪問方式,表示mysql在表中找到所需行的方式,又稱"訪問型別"

常用的型別有:all、index、range、ref、eq_ref、const、system、null(從左到右,效能從差到好)

all:full table scan,mysql將便利全表以找到匹配的行

index: full index scan , index與all區別為index型別只便利索引樹

range: 只檢索給定範圍的行 , 使用乙個索引引來選擇行

ref: 表示上述表的連線匹配條件 , 即哪些列或常量被用於查詢索引列上的值

1、order by +limit組合的索引優化 , 如果乙個sql語句如:

select

[column1]

,[column2]

,….from

[table

]order

by[sort]

limit

[offset],

[limit

];

這個sql語句優化比較簡單,在[sort]這個欄位上建立索引即可

2、where + order by + limit組合的索引優化

如果乙個sql語句如:

select

[column1]

,[column2]

,….from

[table

]where

[columnx]=[

value

]order

by[sort]

limit

[offset],

[limit

];

這個語句,如果你仍然採用第乙個例子中建立索引的方法,雖然可以用到索引,但是效率不高.

更高效的方法是建立乙個聯合索引(columnx,sort)

3、怎麼加快查詢速度,優化查詢效率,主要原則就是應盡量避免全表掃瞄,英愛考慮在where及order by 設計的列上建立索引.

建立索引不是建的越多越好,原則是:

4、四種索引的使用場景

​ primary , index , unique 這三種是一類

​ primary主鍵 . 就是唯一不能為空

​ index 索引, 普通的

​ unique 唯一索引. 不予許有重複.

​ fulltext是全文索引 , 用於在一篇文章中 , 檢索文字資訊的 .

​ 舉個例子來說 , 比如你在為某商場做乙個會員卡的系統

​ 這個系統有乙個會員表

​ 有下列字段

5、sql查詢注意部分

1. 任何地方都不要使用 select * from t ,用具體的字段列表代替「*」,不要返回用不到的任何字段。 

2. 應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃瞄。

3. 應盡量避免在 where 子句中對字段進行表示式操作,這將導致引擎放棄使用索引而進行全表掃瞄。如:

select id from t where num/2=100

應改為:

select id from t where num=100*2

4. 應盡量避免在 where 子句中使用 or 來連線條件,否則將導致引擎放棄使用索引而進行全表掃瞄,如:

select id from t where num=10 or num=20

應改為:

select id from t where num=10 union all select id from t where num=20

6、表結構方面優化

2.將常用資訊和不常用資訊分表儲存,比如乙個****的使用者表,使用者的暱稱,頭像,密碼,賬號這類字段用 戶登入就會用到,而使用者的興趣愛好了,喜歡的顏色了這種欄位就分表儲存,相信大家京東賬號中的個人資訊 可能也就在註冊的時候開啟過,以後就再沒注意過了吧。

mysql資料庫索引名 Mysql資料庫索引簡介

1.什麼是索引?資料庫索引是表中的乙個特殊的資料結構,存放的記錄的快速檢索的值,也稱為目錄,被儲存在乙個地方,所以索引是乙個存在的檔案,並不是儲存在記憶體中 索引的存在是為了在查詢時,可以直接通過查詢索引找到那一條記錄所在的位置,而不是逐一的去檢索,大大的提高的查詢的效率 那麼是不是每一列都建立乙個...

Fabric 為CouchDB資料庫建立索引

首先在鏈碼位置建立資料夾meta inf statedb couchdb indexes 新增乙個json檔案如下 ddoc indexownerdoc optional name of the design document in which the index will be created.n...

資料庫建立索引的缺點,和什麼時候不該建立索引

缺點 第一,建立索引和維護索引要耗費時間,這種時間隨著資料 量的增加而增加。第二,索引需要佔物理空間,除了資料表佔資料空間之外,每乙個索引還要佔一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大。第三,當對表中的資料進行增加 刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。...