1. 程式人生 > >為什麼互聯公司都用MySQL非oracle,難道只是便宜

為什麼互聯公司都用MySQL非oracle,難道只是便宜

OLAP、大資料領域,分散式優勢明顯,Oracle、MySQL這些為集中式設計的資料庫劣勢明顯。
但在OLTP領域,純分散式(比如Hadoop)方案並無優勢。

用MySQL做分佈,要有一個代理層(或中間層),程式連線這個代理層,程式以為連線的是一個MySQL,但實際是背後是一堆MySQL。
這樣的分散式方案,在跨庫事務這一塊上是弱點,有可能限制了業務發展。
純集中式方案不存在這樣的問題。

分散式在OLTP中也要用,但對於OLTP來說,不到萬不得一,不要分佈。能分兩臺、不要分三臺。
OLAP簡單的堆機器、拼機器數量沒問題,OLTP下機器數量一旦失控,其產生的問題、成本等等更難以控制。

現在硬體都在提升。SSD、InfiniBand更快的網路等等技術,使用RAC這樣的有限式分佈方案,基本上都可以滿足OLTP的需要。


而MySQL由於開源,可以帶來兩大優勢:
1、可以更加了解軟體運作的原理,更好的設定MySQL。一旦出了故障也可以準確定位。
2、可以更容易開發周邊產品。比如開發解析Oracle Redo的產品極為困難,但MySQL就不一樣了,Redo的格式是公開的。

Oracle現在是越來越封閉,在不使用除錯技術的情況下,研究Oracle日漸艱難。許多效能資料、等待事件的本意無從知曉,問題的定位比較困難。開源的MySQL不存在這樣的問題。

國內網際網路巨頭多在開發基於MySQL網路協議的代理層。簡單點說你連線MySQL,其實是連線了代理層,由代理層把你的SQL發到某個MySQL庫中執行,如果是OLAP型SQL,由代理層用協調器,將SQL分佈到多個MySQL庫中執行,再由代理層合併結果。

相關推薦

為什麼互聯公司MySQLoracle難道只是便宜

OLAP、大資料領域,分散式優勢明顯,Oracle、MySQL這些為集中式設計的資料庫劣勢明顯。但在OLTP領域,純分散式(比如Hadoop)方案並無優勢。用MySQL做分佈,要有一個代理層(或中間層),程式連線這個代理層,程式以為連線的是一個MySQL,但實際是背後是一堆MySQL。這樣的分散式方案,在跨庫

為啥國內互聯網公司centos而不是ubuntu?

增加 原因 body 互聯 不用 log centos 穩定性 知乎 一直以來都很好奇ubuntu和centos有啥區別,上學時接觸的都是ubuntu,自己每次裝virtual box的時候都會下個ubuntu,但是公司的服務器上裝的都是centos,今天查了下知乎網友的精

偉大的公司是進化而來偉大的人也是

本文部分摘自《奔跑吧,程式設計師》——葉夫根尼·布里克曼 有效的複雜系統一定是從有效的簡單系統進化而來的。——John Gall 看到長頸鹿的脖子時,你要知道這麼長的脖子並不是老天爺一開始就故意設計的。隨機突變導致一些長頸鹿的脖子變長,這又恰好提高了它們在某種特定環境下的生存概

mysql實現oracle的分析函式

最近資料中心環境切換,源資料儲存在oracle11g裡,新環境要mysql5.7, 由於很多的sql語句用到了oracle的分析函式,而mysql對此暫無很好的支援,所以做了以下的轉化,作為標記,有錯誤的地方,希望大家指正。 一。準備工作 1.資料表準備 oracle的sc

平民公司有大神滴來自一個郵箱管理員的修養

ops init.d images 出現 drop 開源軟件 RoCE db4 con ** 在很久很久之前,老板說用企業郵箱不安全,之後我們都是用開源軟件搭建自己的郵件服務器與管理,然後2015年服務器報廢的年紀了,老板有聽到雲計算,讓我們上雲了........

任正:所有公司是管理第一技術第二(沒有一流管理領先的技術就會退化;有一流管理即使技術二流也會進步)

日本 高中生 成員 臺階 人生 集中 百萬 參加 一個 這是早年華為總裁任正非與參加培訓的新員工的交流紀要,任正非幽默、風趣、坦誠,也略帶一絲無奈,其中的很多觀點仍然具有思考和借鑒意義。1、你們下去碰到的領導並不是你想像的那麽好,他們有時將鼻涕抹在袖口上,有時不穿襪子,不像

的資料庫表結構匯出工具,支援OracleMySQLSQL SERVER

好用的資料庫表結構匯出工具 之前遇到公司需要匯出表結構的word文件,在網上找了一大堆關於匯出資料庫表結構成word文件的工具,發現只有一款DBExportDoc,而且還需要操作巨集,而且還需要2003的word版本,所以我就自己搞了一個開源工具.(支援 Ora

MyBatis自身集合巢狀遞迴查詢目錄樹(適用於MySQLORACLE等資料庫遞迴程式碼寫在XML中通過SQL完成)

JAVA程式碼實現(連結):MySql、Oracle(通用方法)遞迴查詢生成檔案目錄樹(JAVA實現 遞迴過程中不訪問資料庫,遞迴之前只訪問兩次 進行遞迴前資料準備)   以下是XML中實現檔案樹的查詢、遞迴 場景:根據交易編碼,查詢檔案樹 檔案、資料夾都存放TRADER_

MYSQL提供的API中的mysql_real_query()和mysql_query()試了好像不行啊!

問題終於搞定了,我真是快要瘋了:-( 下午我做的一個試驗,執行sql語句如下: 1) mysql_query(con,"select * from game where CitizenName = 'link' and GameName = '五子棋'") 這句話在程式中是

Google公司的人體工學腰靠有什麼久坐不累的祕密?

©文丨 程式設計師大咖©文丨 程式設計師大咖©文丨 程式設計師大咖©程式設計師嚴選 丨為您甄選全

MySQLOraclePostgreSQL通過web方式管理維護 提高開發及運維效率

數據庫管理系統 遠程服務 .com gre ava window 開發 功能 mss 在開發及項目運維中,對數據庫的操作大家目前都是使用客戶端工具進行操作,例如MySQL的客戶端工具navicat,Oracle的客戶端工具 PL/SQL Developer

跳槽3次才算弄明白的4個秘密所有公司不會告訴你(收集互聯網)

跳槽3次才算弄明白的4個秘密 所有公司都不會告訴你(收集互聯網) 網上看到的,有點意思,個人雖然不完全認同,但也是當今社會真實寫照。。職場中不光光是要靠能力做事,兢兢業業努力工作卻只獲得一份溫飽的工資。越是老實人,幹的越多,拿得越少,升的越慢,這並不是個例了 。人民的名義中漢東的易學習難被提拔,職場中

8個節點每個節點上布置6個ROS組裝250讀出251,事例率為645.3Hz

所在 ros mage images alt 黃色 節點 網段 cnblogs 組裝都用250網段,讀出都用251網段。除了黃色部分以外的節點都是cmm03節點。 平均事例率為:645.26Hz, ros所在節點的cpu idle 為17%。 8個節點,每個節點上

二級考試MySQL數據庫怎麽?mysql拷貝數據庫庫文件復制還原後顯示表不存在怎麽辦

adb 輸入 顯示 怎麽辦 config 錯誤提示 當我 不同的 虛擬 問題環境,最近準備mysql考試,用的 **教育的題庫,做操作題的時候發現把題庫給的數據庫文件復制data目錄,能顯示表,但是不能操作表 1 查看mysql存放數據庫文件的目錄

MySQL的朋友們請不要使用"utf8"請使用"utf8mb4"

是什麽 明顯 target 源碼 占用 標準 丟失 信息 字符編碼 轉自: (譯)用MySQL的朋友們請不要使用"utf8",請使用"utf8mb4" 用MySQL的朋友們請不要使用"utf8",請使用"utf8mb4" 今天我試圖把UTF-8編碼的字符串插入使用“u

安裝xmlspy之後鏈接及郵箱等這個軟件打開怎樣取消?

https 親測 out 打開控制面板 一點 lsp 嘗試 解決 安裝 安裝xmlspy之後,鏈接及郵箱等都用這個軟件打開,怎樣取消?   安裝xmlspy之後,大部分的鏈接就會用這個軟件打開,比較糟心。所以嘗試很多的方法,終於解決了。   (1)打開控制面板,找到默認程序

mysql優化專題」90%程序員面試得上的索引優化手冊(5)

根據 eat index 重要 進行 需要 範圍查詢 記錄 文件的 目錄(技術文) 多關於索引,分為以下幾點來講解: 一、索引的概述(什麽是索引,索引的優缺點) 二、索引的基本使用(創建索引) 三、索引的基本原理(面試重點) 四、索引的數據結構(B樹,hash) 五、創建索

Oracleleft join 替代 exists ,not exists,in , not in提高效率

.cn rom mage png 高效 pan div sele bsp Not IN問題 Exists,not Exists,in,not in 例如: DELETE FROM YSHA WHERE NOT EXISTS(SELECT 1 FROM YSHB B

mysql 創建授權刪除

pre 用戶名 reat 刪除用戶 host user all 給賬號 ges 1、創建用戶 創建一個用戶名是 lefunyun 密碼是 X5A4FU8I0lKM21YPYUzP 賬號 CREATE USER lefuyun@localhost IDENTIFIED BY

戶目錄下編譯mysql源碼實現單主機安裝多個mysql實例

.tar.gz 5.7 unix Language working 符號 cmak sam dcm 1.建立用於安裝mysql的用戶目錄:useradd mysql_1; passwd mysql_1; 2.在沒有mysql_1目錄下建立文件夾setup: su - mys