2012-02-08 34 views
0

我對我們在辦公室遇到的東西有些困惑。我們擁有Oracle和MySQl相同的數據庫結構。Oracle/MySQL:如果數據庫具有相同的模型,那麼這兩個數據庫都應該是InnoDB?

使用Data Modeler我們生成了兩者的ER圖,而MySQL DB缺少關係。

根據我們的DBA,原因是這些表是MyISAM來支持全文索引。但是我們也在這些表上使用了很多關係,這就是Oracle版本顯示它們的原因。

我們的數據庫有什麼對與錯?

回答

1

我不完全確定你的問題是什麼。如果你澄清,我會盡力提供更好的答案。

無論如何,MySQL有多個存儲引擎。 MyISAM和InnoDB是其​​中兩個(還有其他)。每臺發動機有不同的屬性,如性能,功能等

Here's the MySQL docs外鍵:

對於比其他的InnoDB存儲引擎,MySQL服務器解析國外 KEY語法在CREATE TABLE語句,但不使用或存儲它。

的MySQL允許數據庫開發人員要使用的方法的選擇。 如果您不需要外鍵,並且希望避免與強制實施參照完整性相關聯的開銷 ,則可以選擇另一個存儲引擎(如MyISAM)來代替 。 (例如,對於只執行INSERT和SELECT操作的應用程序 ,MyISAM存儲引擎提供非常快的性能...)。

換句話說,如果你使用MyISAM,你必須自己照顧外鍵檢查。 如果外鍵檢查對你非常重要,那麼我確實會強烈建議使用InnoDB。

+0

但DBA是正確的,你希望MyISAM進行全文搜索。 – Ilion 2012-02-09 02:54:11

+0

Mark的回答是因爲,正如你所提到的,如果需要鍵和關係,它應該是InnoDB,這就是我們設計它的方式,以及我們所有DB應該如何設計 – javaNoober 2012-02-09 22:40:20

相關問題