数据库调优要点纪要
數(shù)據(jù)庫瓶頸一般在IO和CPU
?
1、少用group by, order by
2、通過索引來排序(不要所有字段都用索引,因?yàn)閕nsert、update要重構(gòu)索引很耗時)
3、避免select *
4、少用join
5、join和子查詢,還是用join來代替子查詢吧
6、少用or
7、用union all代替union
8、盡早過濾,比如在多個表進(jìn)行分頁數(shù)據(jù)查詢的時候,最好能在一個表上先過濾,在與別的外表join
9、避免類型轉(zhuǎn)換
10、mysql有自帶的緩存機(jī)制,不需要用memcache來做!?
11、把重復(fù)、不統(tǒng)一的數(shù)據(jù)當(dāng)成你最大的敵人來對付
12、當(dāng)心被分隔符分割你的數(shù)據(jù),他們違反了“字段不可再分”,如某字段內(nèi)容為physics/maths。
解決方案:把這些字段移到另一個表中,使用外鍵來連接
13、所有字段都必須完整的依賴主鍵而不是部分依賴
14、如果性能是關(guān)鍵,不要固執(zhí)的去避免冗余
?
對于數(shù)據(jù)庫的設(shè)計(jì)我們沒有必要把三范式作為死規(guī)定,作為指導(dǎo)思想即可。你在做數(shù)據(jù)庫設(shè)計(jì)的時候首先要明白的db是要干什么的。是面向事物的?還是面向統(tǒng)計(jì)分析的?面向事物的當(dāng)然CRUD(create,read,update,delete)居多,而統(tǒng)計(jì)的則是查詢,分析居多,兩種數(shù)據(jù)庫的設(shè)計(jì)必然會不一樣,因?yàn)閭?cè)重點(diǎn)不一樣。
?
轉(zhuǎn)載于:https://www.cnblogs.com/AmilyWilly/p/4791816.html
總結(jié)
- 上一篇: Ubuntu server下“初始化月份
- 下一篇: FGUI系统分析