更新時(shí)間:2020-02-12 10:09:21 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2764次
數(shù)據(jù)庫是開發(fā)過程中必須要有的,正是由于數(shù)據(jù)庫的使用率是100%,所以會(huì)有各種各樣的關(guān)于數(shù)據(jù)庫的優(yōu)化,拆分等等一系列的問題。
負(fù)向查詢不能使用索引
selectnamefromuserwhereidnotin(1,3,4);
應(yīng)該修改為:
selectnamefromuserwhereidin(2,5,6);
前導(dǎo)模糊查詢不能使用索引
如:
selectnamefromuserwherenamelike'%zhangsan'
非前導(dǎo)則可以:
selectnamefromuserwherenamelike'zhangsan%'
建議可以考慮使用Lucene等全文索引工具來代替頻繁的模糊查詢。
數(shù)據(jù)區(qū)分不明顯的不建議創(chuàng)建索引
如user表中的性別字段,可以明顯區(qū)分的才建議創(chuàng)建索引,如身份證等字段。
字段的默認(rèn)值不要為null
這樣會(huì)帶來和預(yù)期不一致的查詢結(jié)果。
在字段上進(jìn)行計(jì)算不能命中索引
selectnamefromuserwhereFROM_UNIXTIME(create_time)<CURDATE();
應(yīng)該修改為:
selectnamefromuserwherecreate_time<FROM_UNIXTIME(CURDATE());
最左前綴問題
如果給user表中的usernamepwd字段創(chuàng)建了復(fù)合索引那么使用以下SQL都是可以命中索引:
但是使用
selectusernamefromuserwherepwd='axsedf1sd'
是不能命中索引的。
如果明確知道只有一條記錄返回
selectnamefromuserwhereusername='zhangsan'limit1
可以提高效率,可以讓數(shù)據(jù)庫停止游標(biāo)移動(dòng)。
不要讓數(shù)據(jù)庫幫我們做強(qiáng)制類型轉(zhuǎn)換
selectnamefromuserwheretelno=18722222222
這樣雖然可以查出數(shù)據(jù),但是會(huì)導(dǎo)致全表掃描。
需要修改為
selectnamefromuserwheretelno='18722222222'
如果需要進(jìn)行join的字段兩表的字段類型要相同
不然也不會(huì)命中索引。
數(shù)據(jù)庫相關(guān)視頻教程
oracle數(shù)據(jù)庫教程:http://www.dabaquan.cn/v22/
數(shù)據(jù)庫plsql教程:http://www.dabaquan.cn/v23/
jdbc數(shù)據(jù)庫教程:http://www.dabaquan.cn/v24/
數(shù)據(jù)庫mysql教程:http://www.dabaquan.cn/v21
Java實(shí)戰(zhàn)項(xiàng)目視頻之egov項(xiàng)目視頻教程【免費(fèi)下載】:http://www.dabaquan.cn/v83/
Java學(xué)生成績(jī)管理系統(tǒng)視頻教程【免費(fèi)下載】:http://www.dabaquan.cn/v51/
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java數(shù)據(jù)庫編程視頻教程下載”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)