面試官問(wèn): 談?wù)勀銓?duì)數(shù)據(jù)庫(kù)優(yōu)化的見解(方案)

三大方向:
1、內(nèi)核優(yōu)化。
2、my.cof配置。
3、sql語(yǔ)句優(yōu)化
語(yǔ)句優(yōu)化:
1、最有效的是緩存,如select name from T_student where create =sysdate()與
select name from T_student where create ='2021-02-12' --第一個(gè)是不會(huì)走緩存的。
2、使用explane分析sql語(yǔ)句
3、where條件使用索引 ,大數(shù)據(jù)查詢不適合建立索引。
4、Limit
5、永久連接后,apache在某些極端環(huán)境下會(huì)繼續(xù)簡(jiǎn)歷新的連接
6、正確使用數(shù)據(jù)庫(kù)引擎
7、大量新增 刪除,表會(huì)鎖起來(lái),就會(huì)有大量的其他請(qǐng)求會(huì)排隊(duì),當(dāng)達(dá)到一定程度會(huì)搞垮數(shù)據(jù)庫(kù) 如何解決
8、字段類型能使用小,盡量使用小,越緊湊讀取也是會(huì)更快。固定
9、最好固定好長(zhǎng)度,數(shù)據(jù)庫(kù)有偏移量,固定就好些
10、盡量不要賦null,
11、固定的字段使用枚舉類型(國(guó)家、城市、性別)
12、建立主鍵 最好不要用vchar來(lái)做主鍵
13、避免使用* ,要使用具體字段, 減少內(nèi)存消耗,網(wǎng)絡(luò)傳輸
14、rand() 計(jì)算是在cpu的,比如order by random(),就會(huì)消耗很大,盡量避免使用這個(gè)。
15、join 的盡量?jī)蓚€(gè)建立的數(shù)據(jù)類型要一致
16、使用表垂直分割,查詢效率會(huì)加快。