2012-02-08 86 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

相关问题