數(shù)據(jù)庫是開發(fā)過程中必須要有的,正是由于數(shù)據(jù)庫的使用率是100%,所以會有各種各樣的關(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
這樣會帶來和預(yù)期不一致的查詢結(jié)果。
在字段上進(jìn)行計算不能命中索引
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)移動。
不要讓數(shù)據(jù)庫幫我們做強(qiáng)制類型轉(zhuǎn)換
selectnamefromuserwheretelno=18722222222
這樣雖然可以查出數(shù)據(jù),但是會導(dǎo)致全表掃描。
需要修改為
selectnamefromuserwheretelno='18722222222'
如果需要進(jìn)行join的字段兩表的字段類型要相同
不然也不會命中索引。
數(shù)據(jù)庫相關(guān)視頻教程
oracle數(shù)據(jù)庫教程:http://www.bjpowernode.com/v22/
數(shù)據(jù)庫plsql教程:http://www.bjpowernode.com/v23/
jdbc數(shù)據(jù)庫教程:http://www.bjpowernode.com/v24/
數(shù)據(jù)庫mysql教程:http://www.bjpowernode.com/v21
Java實戰(zhàn)項目視頻之egov項目視頻教程【免費下載】:http://www.bjpowernode.com/v83/
Java學(xué)生成績管理系統(tǒng)視頻教程【免費下載】:http://www.bjpowernode.com/v51/
以上就是天津卓眾教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java數(shù)據(jù)庫編程視頻教程下載”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。