在MYsql中使用哪些DB引擎?

时间:2011-11-11 10:08:28

标签: mysql

我有一个客户,中间,项目类型数据库。

客户可以购买许多商品,这些商品存储在“中间”表格中,只有两列包含customeriditemid

我目前正在为所有牌桌使用myisam。

是否建议在此结构中使用Innodb作为中间表?

3 个答案:

答案 0 :(得分:1)

在这种情况下我更喜欢InnoDB,因为:

InnoDB应该用于数据完整性优先的地方,因为它通过关系约束和事务的帮助固有地处理它们。 写入密集型(插入,更新)表更快,因为它使用行级锁定,只保留对插入或更新的同一行的更改。

虽然

MyISAM设计和创建更简单,因此对初学者来说更好。 不用担心表之间的外来关系。 由于结构更简单,整体上比InnoDB更快,因此服务器资源的成本更低。 全文索引。 特别适合读取密集型(选择)表。

比较非常简单。 InnoDB更适合需要频繁插入和更新的数据关键情况。另一方面,MyISAM在不完全依赖数据完整性的应用程序中表现更好,而且大多只选择并显示数据。

希望这有帮助。

答案 1 :(得分:0)

INNODB支持foreign key constraints,包括级联删除,在联结表中非常有用。

级联删除(简单地说)允许您的架构自行清理。

如果您的联结表使用带有级联删除的外键约束,并且您删除了customeritem记录,则匹配的middle记录将被删除,因此它不会成为孤儿。

我绝对推荐INNODB

答案 2 :(得分:0)

Innodb让您定义很酷的外键。

从那里你会有一些功能:

  • foregin-keys也可以删除/更新依赖数据。
  • 如果存在依赖,foregin-keys可以拒绝删除/更新。

通常,使用foregin-keys会尽早决定:那些foregin-key需要额外的代码限制 - 即,如果没有客户或项目,您可能无法插入中间键。