qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          大數(shù)據(jù)高并發(fā)數(shù)據(jù)庫設(shè)計(jì)注意要點(diǎn)

           在一個(gè)項(xiàng)目實(shí)施初始,數(shù)據(jù)庫的設(shè)計(jì)非常重要,很多時(shí)候,我們只關(guān)心和考慮到眼前的功能,而忽略了后續(xù)的可維護(hù)性和可拓展性,以及還有一個(gè)在大數(shù)據(jù)時(shí)代會(huì)遇到的高并發(fā)問題。
            在設(shè)計(jì)表結(jié)構(gòu)時(shí)要注意以下幾個(gè)要點(diǎn):
            1.數(shù)據(jù)行的長度不要超過8020字節(jié),如果超過這個(gè)長度的話在物理頁中這條數(shù)據(jù)會(huì)占用兩行從而造成存儲(chǔ)碎片,降低查詢效率。
            2.能夠用數(shù)字類型的字段盡量選擇數(shù)字類型而不用字符串類型的(電話號(hào)碼),這會(huì)降低查詢和連接的性能,并會(huì)增加存儲(chǔ)開銷。這是因?yàn)橐嬖谔幚聿樵兒瓦B接回逐個(gè)比較字符串中每一個(gè)字符,而對于數(shù)字型而言只需要比較一次就夠了。
            3.對于不可變字符類型char和可變字符類型varchar 都是8000字節(jié),char查詢快,但是耗存儲(chǔ)空間,varchar查詢相對慢一些但是節(jié)省存儲(chǔ)空間。在設(shè)計(jì)字段的時(shí)候可以靈活選擇,例如用戶名、密碼等長度變化不大的字段可以選擇CHAR,對于評論等長度變化大的字段可以選擇VARCHAR。
            4.字段的長度在最大限度的滿足可能的需要的前提下,應(yīng)該盡可能的設(shè)得短一些,這樣可以提高查詢的效率,而且在建立索引的時(shí)候也可以減少資源的消耗。
            查詢語句優(yōu)化要點(diǎn):
            1.盡可能使用索引
            2.查詢有先后順序,注意把快速條件或者索引查詢放在前面
            3.應(yīng)盡量避免在 where 子句中使用 or 來連接條件,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:
            select id from t where num=10 or num=20
            可以這樣查詢:
          select id from t where num=10
          union all
          select id from t where num=20
            4.要避免在where中使用表達(dá)式,這樣將放棄索引,進(jìn)行全表查詢

          posted on 2014-02-18 11:32 順其自然EVO 閱讀(1310) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 元谋县| 大渡口区| 汨罗市| 阳新县| 浪卡子县| 阳东县| 苏尼特左旗| 丹巴县| 高安市| 鹤庆县| 濮阳市| 泗洪县| 富川| 南安市| 日照市| 右玉县| 新乡县| 措美县| 姚安县| 新晃| 安新县| 五峰| 松桃| 玉门市| 琼结县| 商城县| 登封市| 蒙城县| 南华县| 东平县| 宁武县| 九龙坡区| 永新县| 中宁县| 龙口市| 遵义县| 呼玛县| 平远县| 尼勒克县| 临湘市| 白玉县|