我应该选择什么 MySQL 存储引擎?

bra*_*r19 1 mysql innodb myisam

我的目录网页有一个数据库。有些表大约有 3GB,有数百万行。

我应该为我的数据库选择什么引擎,InnoDB 还是 MyISAM?

每周只会有大约 1,000 条新记录,大约有 1,000 条删除,但我会经常修改一张表中的一些数据(价格、数量等)。所有其他表将被“密封”。

我需要索引来启用快速查询。哪种存储引擎最适合这种情况?

Ste*_*oke 5

我的建议是从以下开始:

  1. 寻找您可以获得的最新版本的 MySQL 服务器,尽管生产就绪版本是 5.5,但在 5.6 上已经完成了一些令人印象深刻的工作

  2. 选择 InnoDB - 作为更高 MySQL 版本的默认值

  3. 配置 InnoDB 如下:

    • file_per_table - 为每个表创建一个数据文件,而不是将所有表放在一个数据文件中
    • innodb_buffer_pool_size - 80% 的可用 RAM(如果是专用机器),以便尽可能多的数据库在内存中
  4. 表列特点:

    • 使用数据所需的最小列大小
    • 使用数字外键
    • 索引搜索中使用的列,并设置索引以涵盖最常见的搜索,例如,如果您搜索第 4 列,则 6 会创建一个多列索引,其中第 4 列首先是第 6 列

请记住,这些只是起点,您可以在前进时微调细节,但在微调之前,先测量调整然后再测量