<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一點(diǎn)一滴,編程人生

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      69 隨筆 :: 0 文章 :: 25 評(píng)論 :: 0 Trackbacks

    近段時(shí)間離職了,一個(gè)半月時(shí)間一直面試中,面試差不多大大小小30次,從運(yùn)維到開發(fā)都有,成功3家,但是可惜我這邊對(duì)那3家不滿意,所以只能繼續(xù)努力尋找。

         今天比較特別面試的是數(shù)據(jù)庫(kù)的設(shè)計(jì)。面試我的人和我年齡一樣,說實(shí)話數(shù)據(jù)庫(kù)設(shè)計(jì)方面我不在行,但是他發(fā)布的職位上面只寫了網(wǎng)站維護(hù),數(shù)據(jù)庫(kù)維護(hù)等字樣,比較模糊,所以我這邊直接的投遞,有了面試機(jī)會(huì)。

          面試開始那位仁兄直接的說了他所面臨的問題,公司數(shù)據(jù)庫(kù)數(shù)據(jù)到達(dá)百萬級(jí)別,以后可能會(huì)到達(dá)千萬,需要一個(gè)好的設(shè)計(jì)人員對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化設(shè)計(jì),這里指的是不光設(shè)計(jì)符合功能需求,更加要符合性能需求,就是說數(shù)據(jù)庫(kù)設(shè)計(jì)上面需要兼顧到效率。

         他給我出了一道題目, 一個(gè)信息表,一個(gè)類別表。類別表中的類別成樹形結(jié)構(gòu)的,這個(gè)樹可能會(huì)非常深,就是說類別會(huì)很多。信息表中有所有類別的信息?,F(xiàn)在需要設(shè)計(jì)下類別表和信息表,使得信息表和類別表在查詢的效率能夠承受千萬級(jí)別的數(shù)據(jù)。

         我用比較正常的思維去設(shè)計(jì),類別表中有id,name,parentid。這時(shí)候他說如果以這種方式設(shè)計(jì)那在查詢的時(shí)候不斷的用嵌套的方式查詢效率不行,他讓我想下,我說可以將類別表分為幾個(gè)小表和信息表聯(lián)結(jié)查詢,他說這個(gè)方法不行,我想了會(huì)沒有想到,他就直接給我講了他的方法,但是他說這個(gè)方法百萬級(jí)可以,但是千萬級(jí)的不行,他的方法也簡(jiǎn)單,設(shè)第一個(gè)大類為1,第一個(gè)大類下面的一個(gè)類別為2,那么在類別表中存儲(chǔ)

        id  name                       category_id

        1  第一大類下的一個(gè)小類    '1,2'

     

    那么在查詢的時(shí)候 select * from category where  category_id like '1%';

     只要like后面不要寫'%1%'。  1的前面不要寫%,在效率上面還是能夠承受的,這個(gè)和索引類似。

     

    他也指出雖然這種方法提高了一定效率但是每次有一個(gè)新類別加入時(shí)候總要再次遍歷整個(gè)樹形類別,在適合的位置插入,這樣子的方式給維護(hù)類別表格帶來一定麻煩。

     

    那位仁兄還問題程序上分頁的問題,我說比較通常的方式是將在查詢數(shù)據(jù)庫(kù)的時(shí)候截取記錄上的某一頁記錄顯示。

    但是他說這樣子的方式對(duì)他的大量數(shù)據(jù)處理沒有用處。 

     

    以上就是那位仁兄的思路。我這邊沒有這方面經(jīng)驗(yàn)只能對(duì)這位仁兄說抱歉了,同時(shí)也非常感謝他提出的問題和答案。

     回來的路上一直在想這個(gè)問題,雖然他這樣子的方式可以回避掉嵌套查詢,但是我想到這樣子的存儲(chǔ)方式給增大了類別表格的記錄數(shù)量和更新刪除的難度,同時(shí)如果類別和信息多的話仍然會(huì)有查詢效率的問題產(chǎn)生。

     

      在網(wǎng)上查詢這種大量數(shù)據(jù)的數(shù)據(jù)庫(kù)設(shè)計(jì)方法,大部分方法都是分區(qū)表或者索引。

     


    1.按照月來分,每個(gè)月讓系統(tǒng)自動(dòng)建一張表,然后把這個(gè)月的數(shù)據(jù)放在這個(gè)表里面2.就是用一個(gè)備份的數(shù)據(jù)服務(wù)器,把每個(gè)月的數(shù)據(jù)都導(dǎo)出到那個(gè)備份服務(wù)器上去,在備份服務(wù)器上面數(shù)據(jù)的存儲(chǔ)不按月來分,按照年來分,每年建一張新表,做報(bào)表的時(shí)候,就到備份服務(wù)器上面操作3.就是對(duì)這幾張表用對(duì)象數(shù)據(jù)庫(kù),來存儲(chǔ)一個(gè)月的數(shù)據(jù),這數(shù)據(jù)是在內(nèi)存的,操作起來,比操作關(guān)系數(shù)據(jù)庫(kù)快,前段時(shí)間的數(shù)據(jù)還是放在關(guān)系數(shù)據(jù)庫(kù)里面,這樣就可以不用數(shù)據(jù)備份服務(wù)器了4 .定時(shí)清理數(shù)據(jù),可以考慮用觸發(fā)器或者帶存儲(chǔ)過程的作業(yè)來實(shí)現(xiàn);5.是考慮數(shù)據(jù)的轉(zhuǎn)換與提取,定期用程序或用事務(wù)復(fù)制導(dǎo)入原始/匯總數(shù)據(jù),把數(shù)據(jù)復(fù)制到一臺(tái)專門做統(tǒng)計(jì)的服務(wù)器上,專門做查詢所用;查詢的時(shí)候做相應(yīng)的優(yōu)化,例如索引,視圖等這樣查詢的時(shí)候壓力就會(huì)小很多;同時(shí)考慮負(fù)載平衡,在空隙時(shí)利用其cpu和內(nèi)存6 . 各業(yè)務(wù)系統(tǒng)和外部數(shù)據(jù)源傳送的數(shù)據(jù)為維系挽留系統(tǒng)輸入,這些數(shù)據(jù)分別經(jīng)過數(shù)據(jù)格式檢查;源數(shù)據(jù)清洗抽取轉(zhuǎn)換、裝載數(shù)據(jù)到收集層;對(duì)收集層中數(shù) 據(jù)抽取、轉(zhuǎn)換、裝載到數(shù)據(jù)倉(cāng)庫(kù);數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換并結(jié)合模型算法庫(kù)中的算法生成維系結(jié)果集以供輸出;同時(shí)通過數(shù)據(jù)倉(cāng)庫(kù)接口,可將數(shù)據(jù)提供給應(yīng) 用系統(tǒng)的本地化查詢使用。

    轉(zhuǎn)自:http://www.cnblogs.com/luluping/archive/2009/12/12/1622566.html

     

    大數(shù)據(jù)量的數(shù)據(jù)庫(kù)設(shè)計(jì)準(zhǔn)則:   1、分區(qū) (list、range、hash)。   2、根據(jù)where條件來決定分區(qū)策略。

    轉(zhuǎn)自:www.itpub.net

     

    個(gè)人認(rèn)為: 1、既然數(shù)據(jù)量達(dá)到5000萬,是否可以考慮根據(jù)種子進(jìn)行分類,把不同類的種子對(duì)應(yīng)的記錄存放在不同的表中,或者每10個(gè)種子對(duì)應(yīng)的數(shù)據(jù)一起放入一張表 中; 2、在種子信息表中,增加一個(gè)字段,該字段用于記錄該種子的產(chǎn)生的記錄是存放在哪張表里面。 不知道這樣是否有用,樓下的繼續(xù)。。

     

    轉(zhuǎn)自:http://www.soidc.net/discuss/30/040101/00/487088_1.html

     

     

          我對(duì)這方面沒有太多的涉及,所以對(duì)那位仁兄遇到的問題無法做出確切的回答。現(xiàn)在做下事后諸葛亮,我認(rèn)為內(nèi)存既然有限制,那么如果一個(gè)數(shù)據(jù)庫(kù)(不分區(qū))的數(shù)據(jù)量到達(dá)一定程度下,對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢的效率一定有影響,不管設(shè)計(jì)的如何巧妙。所以分區(qū)策略,以硬盤空間來換效率是比較可行方法。

    posted on 2010-10-19 16:50 writegull 閱讀(1443) 評(píng)論(2)  編輯  收藏 所屬分類: 數(shù)據(jù)庫(kù)

    評(píng)論

    # re: 最近面試中遇到的海量數(shù)據(jù)庫(kù)設(shè)計(jì)問題【轉(zhuǎn)】[未登錄] 2010-10-24 14:45 永恒瞬間
    加個(gè)字段level指明當(dāng)前是第幾級(jí),然后查詢的時(shí)候,把level和parentid加起來查,這兩個(gè)字段加索引,這樣可能能應(yīng)對(duì)一些時(shí)間。  回復(fù)  更多評(píng)論
      

    # re: 最近面試中遇到的海量數(shù)據(jù)庫(kù)設(shè)計(jì)問題【轉(zhuǎn)】 2013-12-02 15:31 王黎曉
    比較正常的思維是類別表中有id,name,parentid,key
    key即標(biāo)識(shí)級(jí)別又標(biāo)識(shí)父子關(guān)系,例如:一級(jí)IXX,二級(jí)IXXMXX,三級(jí)IXXMXXTXX  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 99re6在线精品免费观看| 国产大片91精品免费观看不卡| 亚洲免费在线视频观看| 国产色爽免费视频| 亚洲av无码乱码国产精品| 亚洲色大18成人网站WWW在线播放| 黄视频在线观看免费| 手机在线看永久av片免费| 亚洲情a成黄在线观看| 亚洲人成网站在线观看播放动漫 | 亚洲人成777在线播放| 高潮毛片无遮挡高清免费视频| 免费精品无码AV片在线观看| 国产成人免费一区二区三区| 亚洲视频在线观看| 免费精品国自产拍在线播放| 色影音免费色资源| 亚洲色婷婷六月亚洲婷婷6月| 美女视频黄免费亚洲| 免费一级毛片在线播放视频| 国产成人免费片在线视频观看| 亚洲精品国产福利片| 亚洲国产免费综合| 精品剧情v国产在免费线观看| 亚洲视频精品在线| 成全视成人免费观看在线看| 日韩免费无砖专区2020狼| 久久综合亚洲色HEZYO社区 | 一级毛片a女人刺激视频免费| 成年免费大片黄在线观看岛国| 中文字幕在线亚洲精品| 亚洲AV无码一区二区乱子仑| 全部免费毛片在线播放| 亚洲中文字幕无码永久在线| 午夜亚洲国产理论片二级港台二级| 国产成人精品免费视频动漫| 久久精品国产96精品亚洲 | 亚洲最大福利视频| 99国产精品免费观看视频| 久久夜色精品国产亚洲av| 国产偷国产偷亚洲清高APP|