• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
             

            關于內存數據庫

             

            最近要將一些數據放到內存里面做很高的并發操作,考慮了很多方案,

            1、 簡單點使用map hash_map等自己管理。

            2、 sqlite內存表。

            3、 fastdb內存數據庫。

            4、 ExtremeDb,TimesTen等。

            比較測試了一下123,發現還是自己實現速度最快,比fastdb模式快3-5倍,fastdb模式比sqlite內存表模式快10倍左右,由于自己實現不具有典型通用性,多線程下訪問效率會下降,要管理多線程下各種更新查找等還是比較麻煩的,所以在13方案之間糾結。

            為了使得決策更好一些,暫時還沒做決定,順便到萬方等上面搜索了一些論文來看,看來看去看得真來氣啊,雖然都叫內存數據庫但各種實現的都有,有用gdbm來做的,有直接map管理的,有hash管理數據的,有t樹管理的,有數組隊列管理的,有的明顯就是個不大變的東西還弄個啥事務的,靠,剛剛居然還看到一篇鳥文《電網監控系統實時數據庫的設計與實現》里面的測試居然是1000條,插入時間80毫秒,真可笑啊,區區這么點數據也好意思測,還要花80毫秒,還自以為很快,這個速度至少可提高1000倍以上啊,這幫垃圾,寫的啥鳥文章,研究個屁啊。

            看完這十來篇論文,俺的思緒又回到1999年,當年我給別人優化過一個電信計費的軟件(看的論文里面有好幾篇講電信計費的),當時有個朋友的朋友拿了個需求過來,7000萬條記錄,原來計算費單要花十幾個小時吧,我幫他改了下,十來分鐘就算完了,朋友很滿意,當時的做法很簡單,就是弄了個mmtable,大體就是跟map類似的東西吧,那個時候map還沒流行起來,俺也不知道,所以就自己弄了個內存表,內部基本就是二分查找了,那個時候我對hash都不大熟悉,B樹之類的算法剛接觸也不會用,就這么個東西當時的電腦也只要花十來分鐘,我估計就算是那個老程序放在現在的普通臺式機上要不了幾秒鐘就可算完。也不知道這么幾千萬條記錄的小需求怎么在這幫人眼里就成了什么海量數據,對俺來說跟玩似的,區區幾千萬嘛,不過是俺拿來測試用的。

            去年中做了個md5 hash反查的東西,數據都是幾百億到幾萬億的,后來的效果就是一個文件可存萬億記錄,一次查詢平均1.2IO,即使全放在SATA磁盤上也就十來毫秒而已。

            區區幾千萬條記錄咋就叫什么海量數據呢,海量個毛啊,內存都放得下的叫什么海量,現在服務器動不動都是幾十G內存,區區千萬根本算不上什么,查詢定位都可到微妙了,1秒插入至少千萬條了,居然還看到1000條插入的測試,真是不得不佩服國內這幫垃圾研究生的水平,也不知道這種論文咋就能通過審查,只能得出結論他們的老師也都是豬。

                     罵歸罵自己的問題還需要繼續努力,對咱目前的需求來說自己管理數據,即使一個線程都搞得定,因為不過區區幾個表,幾十萬條記錄而已,不過這種10年前咱就會的技術還真是拿不出手,怎么的也得做得更好一點,呵呵,繼續研究吧,多線程下內存數據庫,從概念上看的確是個很有吸引力的東西,要是性能跟得上,其實在很多地方可以取代普通的數據結構用法了,可以大大減少編程難度,甚至我在想如果有個支持事務的內存數據庫,之前設計的cad類軟件的undo/redo都可以用事務來實現,完全可以拋棄先前設計的復雜結構,其實這種東西即使不用內存數據庫就算是用個sqlite都完全能搞定,唉,往事不堪回首啊,看來數據庫方面的確得多花功夫,特別是多線程和分布式模式下的內存數據庫。

             

             

            Posted on 2011-01-21 13:37 袁斌 閱讀(8915) 評論(8)  編輯 收藏 引用 所屬分類: c++ 、云計算 、從業感悟

            Feedback

            # re: 關于內存數據庫  回復  更多評論   

            2011-01-21 15:33 by 楊粼波
            memcached

            # re: 關于內存數據庫  回復  更多評論   

            2011-01-21 15:35 by 袁斌
            @楊粼波
            memcached和內存數據庫完全不同,俺要的是數據運算,而不僅僅是存儲key-value

            # re: 關于內存數據庫  回復  更多評論   

            2011-01-22 11:02 by zuhd
            自己動手 豐衣足食 BTree足矣
            我直接用系統的hash_map 能緩存 能更新 就夠了
            速度神馬的都是浮云 只要夠用 簡單 就哦了

            # re: 關于內存數據庫  回復  更多評論   

            2011-01-22 11:04 by 袁斌
            @zuhd
            很有道理,我也傾向于和你一樣的做法,用更復雜的東西效率低了可控度還下降了,出了問題還難查,再看看并發上如何提高下即可。

            # re: 關于內存數據庫  回復  更多評論   

            2011-01-23 16:14 by 周龍亭
            LZ大牛,期待LZ能給大家分享點實際的東西

            # re: 關于內存數據庫  回復  更多評論   

            2011-01-23 16:28 by 袁斌
            算不上什么大牛啊,有空就寫一點,主要為了和大家交流,向朋友們學習。

            # re: 關于內存數據庫  回復  更多評論   

            2011-01-23 19:16 by 楊粼波
            采用何種解決方案,視乎你的需求而定。
            合適的就是最好的,
            所以,如何去做,是你自己去選擇,
            我給你多一個選擇,剩下的就是你自己去選擇了。

            # re: 關于內存數據庫  回復  更多評論   

            2011-09-01 12:39 by 鄧萬宇
            當年我給別人優化過一個電信計費的軟件(看的論文里面有好幾篇講電信計費的),當時有個朋友的朋友拿了個需求過來,7000萬條記錄,原來計算費單要花十幾個小時吧,我幫他改了下,十來分鐘就算完了,朋友很滿意,當時的做法很簡單,就是弄了個mmtable,

            去年中做了個md5 hash反查的東西,數據都是幾百億到幾萬億的,后來的效果就是一個文件可存萬億記錄,一次查詢平均1.2次IO,即使全放在SATA磁盤上也就十來毫秒而已。

            看完這些,簡直驚呆了?。?!

            -----能不能給個QQ,聯系一下。我的 QQ:58028654, MSN: wanyu.deng@gmail.com; Tel:13379284746
            太仰慕你了?。?

            久久亚洲国产成人精品性色| 人妻精品久久久久中文字幕69 | 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 狠狠狠色丁香婷婷综合久久五月| 婷婷久久综合| 91精品国产91久久| 久久国产精品无码HDAV| 亚洲精品视频久久久| 性做久久久久久久| 久久午夜无码鲁丝片秋霞| 国内精品久久久久久久coent| 久久国产精品成人片免费| 精品久久久久久无码人妻蜜桃| 久久精品免费全国观看国产| 国产呻吟久久久久久久92| 国产成人AV综合久久| 国产激情久久久久久熟女老人| 中文成人无码精品久久久不卡| 精品久久久噜噜噜久久久| 精品久久久久久中文字幕人妻最新| 国产午夜电影久久| 久久久久久久97| 久久无码高潮喷水| 亚洲国产精品综合久久一线| 国产99久久久国产精品~~牛 | 国产情侣久久久久aⅴ免费| 久久久无码精品亚洲日韩软件| 精品久久久久久无码中文野结衣| 少妇内射兰兰久久| 亚洲伊人久久综合影院| 国内精品久久久久久久久| 天天爽天天爽天天片a久久网| 国产精品久久久久久久午夜片| 精品综合久久久久久888蜜芽| 亚洲精品乱码久久久久久蜜桃图片| 欧美日韩精品久久久久| 亚洲AV伊人久久青青草原| 久久97久久97精品免视看 | 久久久久高潮综合影院| 久久精品九九亚洲精品| 色88久久久久高潮综合影院|