<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        SQL到NOSQL的思維轉變的具體分析

        來源:懂視網 責編:小采 時間:2020-11-09 20:11:29
        文檔

        SQL到NOSQL的思維轉變的具體分析

        SQL到NOSQL的思維轉變的具體分析:NOSQL系統一般都會宣傳一個特性,那就是性能好,然后為什么呢關系型數據庫發展了這么多年,各種優化工作已經做得很深了,NOSQL系統一般都是吸收關系型數據庫的技術,然后,到底是什么因素束縛了關系型數據庫的性能呢我們從系統設計的角度看這個問題。 1,
        推薦度:
        導讀SQL到NOSQL的思維轉變的具體分析:NOSQL系統一般都會宣傳一個特性,那就是性能好,然后為什么呢關系型數據庫發展了這么多年,各種優化工作已經做得很深了,NOSQL系統一般都是吸收關系型數據庫的技術,然后,到底是什么因素束縛了關系型數據庫的性能呢我們從系統設計的角度看這個問題。 1,

          NOSQL系統一般都會宣傳一個特性,那就是性能好,然后為什么呢?關系型數據庫發展了這么多年,各種優化工作已經做得很深了,NOSQL系統一般都是吸收關系型數據庫的技術,然后,到底是什么因素束縛了關系型數據庫的性能呢?我們從系統設計的角度看這個問題。

          1, 索引支持。關系型數據庫創立之初沒有想到今天的互聯網應用對可擴展性提出如此高的要求,因此,設計時主要考慮的是簡化用戶的工作,SQL語言的產生促成數據庫接口的標準化,從而形成了Oracle這樣的數據庫公司并帶動了上下游產業鏈的發展。關系型數據庫在單機存儲引擎支持索引,比如Mysql的Innodb存儲引擎需要支持索引,而NOSQL系統的單機存儲引擎是純粹的,只需要支持基于主鍵的隨機讀取和范圍查詢。NOSQL系統在系統層面提供對索引的支持,比如有一個用戶表,主鍵為user_id,每個用戶有很多屬性,包括用戶名,照片ID(photo_id),照片URL,在NOSQL系統中如果需要對photo_id建立索引,可以維護一張分布式表,表的主鍵為

          2, 事務并發處理。關系型數據庫有一整套的關于事務并發處理的理論,比如鎖的粒度是表級,頁級還是行級,多版本并發控制機制MVCC,事務的隔離級別,死鎖檢測,回滾,等等。然而,互聯網應用大多數的特點都是多讀少些,比如讀和寫的比例是10 : 1,并且很少有復雜事務需求,因此,一般可以采用更為簡單的copy-on-write技術:單線程寫,多線程讀,寫的時候執行copy-on-write,寫不影響讀服務。NOSQL系統這樣的假設簡化了系統的設計,減少了很多操作的overhead,提高了性能。

          3, 動態還是靜態的數據結構。關系型數據庫的存儲引擎總是一顆磁盤B+樹,為了提高性能,可能需要有insert buffer聚合寫,query cache緩存讀,經常需要實現類似Linux page cache的緩存管理機制。數據庫中的讀和寫是互相影響的,寫操作也因為時不時需要將數據flush到磁盤而性能不高。簡而言之,關系型數據庫存儲引擎的數據結構是通用的動態更新的B+樹,然而,在NOSQL系統中,比如Bigtable中采用SSTable + MemTable的數據結構,數據先寫入到內存的MemTable,達到一定大小或者超過一定時間才會dump到磁盤生成SSTable文件,SSTable是只讀的。如果說關系型數據庫存儲引擎的數據結構是一顆動態的B+樹,那么SSTable就是一個排好序的有序數組。很明顯,實現一個有序數據比實現一個動態B+樹且包含復雜的并發控制機制要簡單高效地多。

          4, Join操作。關系型數據庫需要在存儲引擎層面支持Join,而NOSQL系統一般根據應用來決定Join實現的方式。舉個例子,有兩張表:用戶表和商品表,每個用戶下可能有若干個商品,用戶表的主鍵為

          關系型數據庫的性能瓶頸往往不在SQL語句解析上,而是在于需要支持完備的SQL特性?;ヂ摼W公司面臨的問題是應用對性能和可擴展性要求很高,并且DBA和開發工程師水平比較高,可以通過犧牲一些接口友好性來換取更好的性能。NOSQL系統的一些設計,比如通過寬表實現Join操作,互聯網公司的DBA和開發工程師也做過,NOSQL系統只是加強了這種約束。從長遠來看,可以總結一套約束集合,并且定義一個SQL子集,只需要支持這個SQL子集就可以在不犧牲可擴展性的前提下支持比如90%以上的互聯網應用。我想,NOSQL技術發展到這一步的時候就算是比較成熟了,這也是我們最終想做的事情。我們在設計和使用NOSQL系統的時候也可以適當轉化一下思維,如下:

          1, 更大的數據量。很多人在使用Mysql的過程遇到記錄條數超過一定值,比如2000W的時候,數據庫性能開始下降,這個值的得出往往需要經過大量的測試。然而,大多數的NOSQL系統可擴展性都比較好,能夠支持更大的數據量,因此也可以采用一些空間換時間的做法,比如通過寬表的方式實現Join。

          2, 性能預估更加容易。關系型數據庫由于復雜的并發控制,insert buffer及類似page cache的讀寫優化機制,性能估算相對較難,很多時候需要憑借經驗或者經過測試才能得出系統的性能。然后,NOSQL系統由于存儲引擎實現,并發控制機制等相對簡單,可以通過硬件的性能指標在系統設計之處大致預估系統的性能,性能預估可操作性相對更強

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        SQL到NOSQL的思維轉變的具體分析

        SQL到NOSQL的思維轉變的具體分析:NOSQL系統一般都會宣傳一個特性,那就是性能好,然后為什么呢關系型數據庫發展了這么多年,各種優化工作已經做得很深了,NOSQL系統一般都是吸收關系型數據庫的技術,然后,到底是什么因素束縛了關系型數據庫的性能呢我們從系統設計的角度看這個問題。 1,
        推薦度:
        標簽: 轉換 sql 思維
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品456在线播放| 日本免费网站观看| 亚洲人成网站观看在线播放| 亚洲一级高清在线中文字幕| 99爱在线观看免费完整版| 亚洲精品卡2卡3卡4卡5卡区| 成年网在线观看免费观看网址| 国产成人免费永久播放视频平台| 亚洲一区在线观看视频| 麻豆一区二区免费播放网站| 亚洲美女自拍视频| 1000部啪啪毛片免费看| 久久精品蜜芽亚洲国产AV| 久久er国产精品免费观看2| 亚洲一区二区三区香蕉| 国产男女爽爽爽免费视频| 国产精品亚洲高清一区二区| 搜日本一区二区三区免费高清视频 | 成年人免费网站在线观看| 亚洲最大的成网4438| 在线成人爽a毛片免费软件| 国产成人精品日本亚洲| 最近免费中文字幕中文高清| 国产日韩亚洲大尺度高清| 99在线观看免费视频| 亚洲妇女水蜜桃av网网站| 久久久久国色AV免费观看性色| 亚洲综合久久精品无码色欲| 免费观看国产精品| fc2免费人成在线| 久久久久亚洲精品无码系列| 91大神在线免费观看| 亚洲综合中文字幕无线码| 成人人观看的免费毛片| 曰批免费视频播放免费| 亚洲中文字幕不卡无码| 在线免费中文字幕| 亚洲AV成人精品日韩一区| 亚洲人成网亚洲欧洲无码久久| 野花香高清视频在线观看免费 | 国产精品亚洲精品日韩已方|