10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.5 kb
手册页(Zip)- 372.6 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

15.1.2 InnoDB表的最佳实践

本节描述使用时的最佳实践InnoDB表。

  • 使用最常查询的列为每个表指定一个主键,如果没有明显的主键,则指定一个自动递增值。

  • 在从多个表中根据相同的ID值提取数据时使用连接。为了获得快速连接性能,请在连接列上定义外键,并在每个表中用相同的数据类型声明这些列。添加外键可以确保引用的列被索引,这可以提高性能。外键还将删除和更新传播到所有受影响的表,如果相应的id不在父表中,则防止在子表中插入数据。

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

  • 通过用括号将相关DML操作集分组到事务中开始事务而且提交语句。虽然您不希望太频繁地承诺,但也不希望发行大量的插入更新,或删除运行数小时而不提交的语句。

  • 不要使用锁表语句。InnoDB可以处理多个会话,同时对同一个表进行读写,而不会牺牲可靠性或高性能。要获得对一组行的独占写访问权,请使用选择……更新语法来仅锁定要更新的行。

  • 启用innodb_file_per_table变量或使用通用表空间将表的数据和索引放到单独的文件中,而不是系统表空间。的innodb_file_per_table变量默认启用。

  • 评估您的数据和访问模式是否受益于InnoDB表或页压缩特性。你可以压缩InnoDB表,而不牺牲读写能力。

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