索引優化策略
定長和變長要分離
如id int
,4 個位元組,char(4)
4個位元組,time 都是定長的
varchar
text
blob
這些是不定長的單獨放一張表,通過主鍵關聯起來
分開放置的主要原因是,如果是定長,那個可以通過計算,快速定位到資料在硬碟的位置,速度會快很多。
常用的字段和不常用的字段要分離
結合具體的業務,用的多的字段單獨摘出來,可以減少查詢時候查詢到哪些不常用的字段造成查詢速度過慢
使用冗餘字段
有的時候表的不用分那麼細,比如乙個論壇,他要展示各個模組每天新發的帖子數量,可以在表中直接新增乙個字段用來記錄數量,雖然這個字段可能和其他的表冗餘,但是在查詢的過程中就不需要查其他表,增強了效能。
字段型別的優先順序
按照如下的優先順序
整型》date,time>enum,char>varchar>blob,text
列的特點:
型別特點
整型定長,沒有國家地域之分,不用考慮字符集
比如 1,2,3,4 和 a,b,c,d,後者在排序的時候要去考慮字符集和校對集 ,所以就會比較慢
time
定長,運算快,但是sql寫起來不方便
enum
列舉型別,能約束值,但是在和char進行連查的時候要經歷,串和值的轉化
char
定長,要考慮字符集和校對集
varchar
不定長,要考慮字符集和校對集,速度慢
text/blob
無法使用記憶體臨時表,(排序操作只能在磁碟上進行)
欄位在設計的時候越短越好
越長,計算的時候消耗的記憶體空間就越大,所以要盡量的小
能不用null就別用
字段允許為null,在索引的時候就需要特殊的標記,消耗效能。
mysql資料庫優化索引 mysql資料庫索引調優
一 mysql索引 1 磁碟檔案結構 innodb引擎 frm格式檔案儲存表結構,ibd格式檔案儲存索引和資料。myisam引擎 frm格式檔案儲存表結構,myi格式檔案儲存索引,myd格式檔案儲存資料 2 mysql資料庫資料範問原理 innodb btree 1 ibd檔案中主鍵構建b tree...
mysql資料庫優先 MySQL資料庫優化
1.新增索引 mysql資料庫的四類索引 index 普通索引,資料可以重複,沒有任何限制。unique 唯一索引,要求索引列的值必須唯一,但允許有空值 如果是組合索引,那麼列值的組合必須唯一。primary key 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表...
mysql資料庫優化
用到啥學啥,mysql資料庫優化成了這幾天的老大難問題。瘋狂的尋找mysql優化的資料,覺得有用的不少,記錄下跟大家分享,對了,這裡僅僅是mysql資料庫本身的優化,沒有寫磁碟之類的 開始之前,介紹倆mysql的命令 show global status 檢視執行狀態的,顯示執行各種狀態值 show...