鍍金池/ 問答/Java  數(shù)據(jù)庫/ 關(guān)于java程序員在面試中的數(shù)據(jù)庫查詢優(yōu)化問題

關(guān)于java程序員在面試中的數(shù)據(jù)庫查詢優(yōu)化問題

背景:
1.本人java程序員
2.最近在面試高級(jí)開發(fā)崗位
3.之前項(xiàng)目主要用的oracle,mysql用的較少,面試的公司基本是使用mysql的
4.本人在數(shù)據(jù)庫比較薄弱的
5.最近在看《高性能mysql》
6.不僅是面試的問題,自己也想在這方面有所提高
--------分割線----------------
問題:
在面試中都會(huì)問到數(shù)據(jù)庫查詢優(yōu)化和數(shù)據(jù)庫整體優(yōu)化的相關(guān)問題。

我在面試中的回答:
1.select少用*,只使用需要使用的字段
2.盡量少使用關(guān)聯(lián)查詢,適當(dāng)?shù)膶σ恍┳侄芜M(jìn)行數(shù)據(jù)冗余
3.對一些最常用查詢字段,可以考慮使用索引(面試官一般也會(huì)問下有哪些索引類型,索引的數(shù)據(jù)結(jié)構(gòu)B樹,索引失效等問題)
4.mysql可以使用explain,檢查sql的查詢性能,通過key可以看到查詢使用到的索引,type看到是全表掃描還是索引掃描等,盡量使sql通過索引查詢

所以想問問大家,我的回答有哪些問題,可以從哪些方面回答,有哪些可以學(xué)習(xí)的方向?

回答
編輯回答
萌吟

1.分表. 行分表和列分表.
2.索引. 單索引和組合索引
3.sql語句優(yōu)化.
mysql優(yōu)化就從這三方面優(yōu)化.

2018年3月31日 14:21
編輯回答
編輯回答
毀憶

整體優(yōu)化,需考慮 磁盤選擇(機(jī)械、固態(tài))、mysql關(guān)鍵參數(shù)(buffer pool,事務(wù)日志寫方式等)、存儲(chǔ)引擎、分庫分表、讀寫分離、慢查詢?nèi)罩镜取?/p>

sql語句方面,主要就是索引、批量插入、執(zhí)行計(jì)劃和HINTS、表關(guān)聯(lián)個(gè)數(shù)限制、等價(jià)重寫等。
統(tǒng)計(jì)類型的數(shù)據(jù),可以考慮定時(shí)計(jì)算好結(jié)果,用空間換時(shí)間。

以上內(nèi)容,大部分在《高性能mysql》這本書上都提到過,值得認(rèn)真讀、實(shí)踐驗(yàn)證。

2017年4月21日 08:08