mysql最佳配置

mysql innodb 最佳配置

使用查询最频繁的一个或多个列为每个表 指定一个主键, 如果没有明显的主键,则指定一个 自动增量值。

使用联接时,无论是基于多个表中相同的ID值,还是从多个表中提取数据。为了提高连接性能,请在连接列上定义 外键,并在每个表中使用相同的数据类型声明这些列。添加外键可确保对引用的列进行索引,从而可以提高性能。外键还会将删除或更新传播到所有受影响的表,并且如果父表中不存在相应的ID,则可以防止在子表中插入数据。

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

分组组相关的DML 操作成 交易,通过包围他们START TRANSACTION和 COMMIT报表。虽然你不想过于频繁地提交,你也不想发出的巨大的批次 INSERT, UPDATE或 DELETE陈述,不提交运行小时。

不使用LOCK TABLES 语句。InnoDB可以一次处理多个会话,一次读写同一张表,而无需牺牲可靠性或高性能。要获得对一组行的排他性写访问权限,请使用 SELECT ... FOR UPDATE语法仅锁定要更新的行。

启用该 innodb_file_per_table选项或使用常规表空间将表的数据和索引放入单独的文件中,而不是 系统表空间中。

innodb_file_per_table 默认情况下启用 该选项。

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

--sql_mode=NO_ENGINE_SUBSTITUTION 如果在中的ENGINE=子句中 指定的引擎存在问题 ,则可以选择运行服务器 以防止使用其他存储引擎创建表 CREATE TABLE。

 

posted @ 2020-09-01 17:04  dayu.liu  阅读(476)  评论(0编辑  收藏  举报