MySQL 8.0版本说明
MySQL 8.0源代码文档10bet官方网站
本节描述使用时的最佳实践InnoDB
表。
使用最常查询的列为每个表指定一个主键,如果没有明显的主键,则指定一个自动递增值。
在从多个表中根据相同的ID值提取数据时使用连接。为了获得快速连接性能,请在连接列上定义外键,并在每个表中用相同的数据类型声明这些列。添加外键可以确保引用的列被索引,这可以提高性能。外键还将删除和更新传播到所有受影响的表,如果相应的id不在父表中,则防止在子表中插入数据。
关闭自动提交。每秒提交数百次会限制性能(受存储设备写入速度的限制)。
通过用括号将相关DML操作集分组到事务中
开始事务
而且提交
语句。虽然您不希望太频繁地承诺,但也不希望发行大量的插入
,更新
,或删除
运行数小时而不提交的语句。不要使用
锁表
语句。InnoDB
可以处理多个会话,同时对同一个表进行读写,而不会牺牲可靠性或高性能。要获得对一组行的独占写访问权,请使用选择……更新
语法来仅锁定要更新的行。启用
innodb_file_per_table
变量或使用通用表空间将表的数据和索引放到单独的文件中,而不是系统表空间。的innodb_file_per_table
变量默认启用。评估您的数据和访问模式是否受益于
InnoDB
表或页压缩特性。你可以压缩InnoDB
表,而不牺牲读写能力。命令运行服务器
——sql_mode = NO_ENGINE_SUBSTITUTION
选项,防止使用不想使用的存储引擎创建表。