14.1.2 InnoDB表的最佳实践

本节介绍使用表时的最佳做法。InnoDB

  • 为每个表指定一个主键,使用 经常查询的列或列,或自动增量 值(如果没有明显的主键)。

  • 在基于从多个表中提取数据的地方使用联接 这些表中的 ID 值相同。用于快速加入 性能,在联接列上定义外键,以及 在每个表中声明具有相同数据类型的列。 添加外键可确保引用的列 已编制索引,这可以提高性能。外键也 将删除和更新传播到所有受影响的表,以及 防止在子表中插入数据,如果 父表中不存在相应的 ID。

  • 关闭自动提交。每秒提交数百次 设置性能上限(受写入速度的限制 存储设备)。

  • 将相关 DML 操作集分组到事务中 用 和 语句括起来。虽然你不想 提交太频繁,你也不想发出大量运行的 INSERTUPDATE 或 DELETE 语句 小时不承诺。START TRANSACTIONCOMMIT

  • 不要使用 LOCK TABLES 语句。 可以处理多个 会话一次读取和写入同一表 在不牺牲可靠性或高性能的情况下。要得到 对一组行的独占写入访问权限,使用 SELECT ...对于更新语法以仅锁定您 打算更新。InnoDB

  • 启用 innodb_file_per_table 变量或使用常规表空间来放置数据和 将表的索引放入单独的文件而不是系统中 表空间。默认情况下,innodb_file_per_table变量处于启用状态。

  • 评估您的数据和访问模式是否受益于 表或页面压缩 特征。您可以压缩表 在不牺牲读/写能力的情况下。InnoDBInnoDB

  • 使用 --sql_mode=NO_ENGINE_SUBSTITUTION 选项运行服务器,以防止使用存储创建表 您不想使用的引擎。

 
 
posted @ 2022-12-20 15:06  小树木  阅读(18)  评论(0编辑  收藏  举报