資料庫優化

2021-08-07 14:28:15 字數 1122 閱讀 3352

1.sql上的優化

(1)盡量在子查詢中增加過濾條件

比如:

create

table person1(

id int,

name varchar(50),

age int

);create

table person2(

id int,

name varchar(50),

age int

);不推薦:

select * from person1 where id in(

select id from person2

) and age > ?;

推薦:select * from person1 where id in(

select id from person2 where age > ?

);

(2)使用explain檢視sql的詳細資訊。

比如 explain select * from person1 \g

\g表示顯示豎版。

顯示的一些詳細引數,仔細研究後再補充。

(3)資料量大的時候需要避免掃瞄過多的記錄,有以下幾點需要注意:

a.建立合適的索引,比如在order by,where,group by,on從句等等上出現的字段。

b.索引字段越小越好。

c.離散度大的列放在聯合索引前面。離散度大的指的是數值多樣性多的。而聯合索引類似(id1,id2)。

d.避免重複索引和冗餘索引。

2.資料庫表結構的優化

(1)int比varchar型別在mysql上處理簡單。

(2)盡量儲存資料的最小資料型別。

(3)少用text型別,若使用,單獨用一張表儲存。

(4)盡可能使用not null,設定預設值。

(5)資料庫正規化能夠減少欄位的冗餘,但是適當情況下可以考慮反正規化,以空間換時間。

(6)資料庫的水平拆分:解決資料庫單錶資料量過多,將一張表水平拆分成多張表,遇到的問題:怎麼在多張表中查詢資料。

(7)資料庫的垂直拆分:把原來一張表的列拆分,解決表的列的數量過多的問題。原則:常使用的列放在乙個表,不常使用的列放在一張表,text欄位單獨放在一張表。

資料庫優化 資料庫設計優化

一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...

資料庫引擎優化顧問優化資料庫

現在一直在做的專案,資料量相對也不小,開始的時候沒有覺得,因為是剛開始,資料量還很小,在程式使用過程中速度還挺快,但是隨著資料量的不停的增長,發現程式越來越慢,甚至出現了超時的問題,因此要對程式和資料庫進行優化,前期專案比較緊,沒有針對大資料量業務進行分析設計,所以索引等相關優化沒有做到位,通過後期...

資料庫優化

資料庫優化 1 合理使用索引 索引是資料庫中重要的資料結構,它的根本目的就是提高查詢效率。索引的使用要恰到好處,其使用原則如下 在經常進行連線,但是沒有指定為外來鍵的列上建立索引,而不經常連線的字段則由優化器自動生成索引 在頻繁進行排序或分組 即進行groupby或orderby操作 的列上建立索引...