14.1.2 InnoDB表的最佳实践
本节介绍使用表时的最佳做法。InnoDB
-
为每个表指定一个主键,使用 经常查询的列或列,或自动增量 值(如果没有明显的主键)。
-
在基于从多个表中提取数据的地方使用联接 这些表中的 ID 值相同。用于快速加入 性能,在联接列上定义外键,以及 在每个表中声明具有相同数据类型的列。 添加外键可确保引用的列 已编制索引,这可以提高性能。外键也 将删除和更新传播到所有受影响的表,以及 防止在子表中插入数据,如果 父表中不存在相应的 ID。
-
关闭自动提交。每秒提交数百次 设置性能上限(受写入速度的限制 存储设备)。
-
将相关 DML 操作集分组到事务中 用 和 语句括起来。虽然你不想 提交太频繁,你也不想发出大量运行的
INSERT
、UPDATE
或DELETE
语句 小时不承诺。START TRANSACTION
COMMIT
-
不要使用
LOCK TABLES
语句。 可以处理多个 会话一次读取和写入同一表 在不牺牲可靠性或高性能的情况下。要得到 对一组行的独占写入访问权限,使用SELECT ...对于更新
语法以仅锁定您 打算更新。InnoDB
-
启用
innodb_file_per_table
变量或使用常规表空间来放置数据和 将表的索引放入单独的文件而不是系统中 表空间。默认情况下,innodb_file_per_table
变量处于启用状态。 -
评估您的数据和访问模式是否受益于 表或页面压缩 特征。您可以压缩表 在不牺牲读/写能力的情况下。
InnoDB
InnoDB
-
使用 -
-sql_mode=NO_ENGINE_SUBSTITUTION
选项运行服务器,以防止使用存储创建表 您不想使用的引擎。
转发无需备注,如有错误,恳求读者指出,发送到wu13213786609@outlook.com。