首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MYsql中使用哪种DB引擎是多到多?

在MYsql中使用哪种DB引擎是多到多?
EN

Stack Overflow用户
提问于 2011-11-11 18:08:28
回答 3查看 47关注 0票数 0

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

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

我目前正在对所有的表使用myisam。

这个结构的中间表是否推荐使用Innodb?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-11 18:16:05

在这种情况下,我更倾向于使用InnoDB,因为:

应该在数据完整性优先的地方使用InnoDB,因为它本质上是通过关系约束和事务来处理它们的。在写密集型(插入、更新)表中速度更快,因为它利用行级锁定,并且只保留对插入或更新的同一行的更改。

同时,

MyISAM更易于设计和创建,因此更适合初学者。不用担心表之间的外部关系。由于结构更简单,总体上比InnoDB更快,因此服务器资源的成本要低得多。全文索引。尤其适用于读密集型(select)表。

这种比较非常简单。InnoDB更适合于需要频繁插入和更新的数据关键情况。另一方面,MyISAM在不太依赖于数据完整性的应用程序中表现得更好,主要是选择和显示数据。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-11-11 18:13:06

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

级联删除(简单地说)允许您的模式在自我清理之后进行清理。

如果连接表使用带有级联删除的外键约束,并且您删除了customeritem记录,则匹配的middle记录也将被删除,这样它就不会成为孤立记录。

我绝对推荐INNODB

票数 0
EN

Stack Overflow用户

发布于 2011-11-11 18:20:16

Innodb可以让你定义很酷的前置键。

在此基础上,您将拥有一些特性:

如果存在依赖项,too.

  • foregin-keys可以拒绝删除/更新。
  • 前置键可以根据数据进行删除/更新。

通常,使用前景键很早就决定了:这些前景键需要额外的代码限制-也就是说,如果没有客户或项目,您可能无法插入中间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8092445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档