文章載入中... ☆前言☆ 對于初學(xué)者來說,養(yǎng)成代碼規(guī)范的習(xí)慣尤為重要,,同樣在設(shè)計(jì)數(shù)據(jù)庫表以及編寫 SQL語句時(shí),,怎樣優(yōu)化SQL語句以及提高查詢效率?這個(gè)值得每一位java初學(xué)者的注意,。下面我就簡單介紹一些常用的Mysql數(shù)據(jù)庫的設(shè)計(jì)及語句優(yōu)化規(guī)則,。 ?數(shù)據(jù)庫表設(shè)計(jì)規(guī)則 1、冗余設(shè)計(jì),;即設(shè)計(jì)數(shù)據(jù)庫可以適當(dāng)設(shè)計(jì)冗余字段,。 2、設(shè)置刪除狀態(tài)字段,;為了表面鎖表,,盡量用關(guān)鍵字update,,少用delete。 3,、字段上面盡量不要用null做默認(rèn)值,。 4、適當(dāng)加入索引,,過量索引會(huì)減慢插入數(shù)據(jù)的速度,。 5、主鍵類型盡量采用tinyint,;因?yàn)橹麈I一般都是無符號的int,,使用tinyint主鍵量可以達(dá)到int的兩倍。
?Mysql語句優(yōu)化 1,、使用select語句盡量多用字段,,使用 * 效率更低。 2,、 查詢數(shù)量,,盡量使用類似“count(1)”字樣。 3,、 查詢一條語句,,盡量在后面加上“l(fā)imit1”(數(shù)據(jù)庫查詢到一條即停止)。 ?SQL語句優(yōu)化遵循原則 1、盡量避免在列上運(yùn)算,,這樣會(huì)導(dǎo)致索引失效,。 2、使用 JOIN 時(shí),,應(yīng)該用小結(jié)果集驅(qū)動(dòng)大結(jié)果集,,同時(shí)把復(fù)雜的 JOIN 查詢拆分成多個(gè)query,因?yàn)镴OIN 多個(gè)表,,可能導(dǎo)致更多的鎖定和堵塞,。 3、使用LIKE 時(shí),,避免使用 %%,。 4、select 指定查詢字段,,不要全查出來,,節(jié)省內(nèi)存。 5,、使用批量插入語句節(jié)省交互,。 6,、limit的基數(shù)比較大時(shí),使用 between,,between 限定比 limit 快,,但是between也有缺陷,如果id中間有斷行或是中間部分id不讀取的情況,,數(shù)據(jù)會(huì)少,。 例如:select * from t where 1 limit 100000,10 可改為:select * from twhere id between 100000 and100010 7、不要使用rand 函數(shù)取多條隨機(jī)記錄,。 8、避免使用 NULL,。 9,、不要做無謂的排序操作,而應(yīng)盡可能在索引中完成排序,。
|
|