我在這裡將討論一些關於 mysql 的面向企業級應用的思路,以及能否用 mysql 替代當前 oracle 的問題。
首先說明一點的是,我不是說 mysql 沒有大企業級的應用,事實上,可以看到越來越多的成功佈署 mysql 的應用,但是,還不夠多,還有許多大企業的關鍵應用還不敢用 mysql。或許這篇小文能和大家一起**一些比較"虛"的東西。
儲存引擎
由於 mysql 自己一直沒有乙個成熟可靠的儲存引擎,估計這讓他們深感痛處(尤其是目前最成熟的事務型引擎 innodb 又在 oracle 手裡)。mysql 寄予厚望的 falcon 在開發了兩年多之後,建樹不大,而該專案帶頭人 jim starkey 前不久又離開了 mysql,陋屋偏逢連夜雨。
sun 會給 mysql 乙個穩健的引擎麼? 我看短時間內未必能達到。除非,sun 從 oracle 手裡把 innodb 買回來。
如果進行大企業級應用,考慮到引擎本身的穩定性,似乎可選的也只有 innodb 了,但 innodb 的備份工具又是收費的。至於 myisam ,儘管有人的確喜歡用,但對於併發能力要求稍微嚴格一點,myisam 根本不行。
這個 mysql 天生的缺陷在 postgresql 中是不存在的,比如建立索引,可以用create index concurrently 的方式來減小影響。(mysql 後續的版本中在逐漸改善這個問題:新增了 online 關鍵字)
這個看似是個小問題,但實際上卻是對很多人最為困擾的。
很多 mysql 資深使用者能夠根據自己應用的特點佈署適合自己的備份方式(儘管可能也會有缺陷,比如基於時間點的恢復)。
至於另乙個常用來衡量 db 可擴充套件性的特性:分割槽,現在 mysql 已經能夠支援了,儘管實現的的確有點晚。而使用 mysql 的使用者,一般都採取 sharding 的策略對資料進行切分,所以,分割槽的問題倒似乎並不是最為關鍵的。
MySQL資料庫應用
primary key 約束唯一標識資料庫表中的每條記錄。主鍵必須包含唯一的值。主鍵列不能包含 null 值。每個表都應該有乙個主鍵,並且每個表只能有乙個主鍵。create table persons id p int not null,lastname varchar 255 not null,f...
Mysql資料庫儲存引擎
儲存引擎是什麼?mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。例如,如果你在研究大量的臨時資料,你也許需要使...
資料庫 mysql儲存引擎
mysql常用的四種引擎的介紹 1 myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有要求或者以select,insert為主的應用基本上可以用這個引擎來建立表,適合寫多的情況。frm儲存當前資料表的結構,myd儲存當前表的資料,myi儲存當前資料表的索引 支援表級...