php - InnoDB 与 MyISAM

标签 php mysql pdo innodb myisam

在我的特殊情况下,我有一个大约有 6000 名注册用户的小型网站。 InnoDB 的 FK 约束对于确保数据完整性很有用,但我不确定还有什么其他好处......特别是因为我在 FULLTEXT 搜索上失败了,这对我来说可能非常有用。

是否值得将我的表更改为 MyISAM 以便使用 FULLTEXT,或者 InnoDB 是否有其他好处意味着我应该使用我的 LIKE %keyword% 搜索解决方案?

(注意:该站点托管在共享主机上,因此我认为像 Sphinx 这样的第 3 方搜索解决方案不可行。)

最佳答案

与其引用 wiki 或其他页面进行比较,不如在 dev.mysql.com 上查看它们的(MyISAM 和 InnoDB)限制

Limits on InnoDB Tables

至于 MyISAMs 的限制,它们主要是磁盘/列大小。

  1. 支持最大 63 位文件长度的大文件。
  2. MyISAM 表中有 264 (1.8 * 1019) 行的限制。
  3. 每个 MyISAM 表的最大索引数为 64。
  4. 每个索引的最大列数为 16。
  5. 最大 key 长度为 1000 字节。

InnoDB 相当新并且得到了 MySQL 团队的更多支持,因此将它用于更小且易于重新创建/恢复的表是我现在正在练习的。更频繁更新/插入的数据仍然在我自己的服务器上使用 MyISAM。

关于php - InnoDB 与 MyISAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9775937/

相关文章:

php - 为什么我的日期没有显示在此图表上(drupal、php、mysql)?

mysql - 具有一个空字段的 UNIQUE KEY

mysql - 我如何才能从相同的 id_category 和 id_service 中仅获取行及其最大日期

php - 表名作为变量

php - Laravel 4 阿拉伯字符

php - MySQL 使用 PDO 从 SELECT 插入

javascript - 如何设置点击时文件/图像的名称 'Save Image As'

java - 如何在java中实现php的crypt_md5

php - MySQL 抓取不返回任何内容

mysql - 尝试解决MySQL选择查询中的日期条件