表参数设置可用于优化表性能,大多数情况下可以忽视这些参数。如果未明确指出,这些参数是可以用于所有的存储引擎的。

1 ENGINE

ENGINE用于为表指定存储引擎,可以使用下标中列出的引擎名称。引擎名称可以被引号引起来也可以不用引起来,‘DEFAULT’可以被识别但是会忽略执行。可以使用SHOW ENGINES查看所有引擎。

engine mysql 设置 mysql中engine参数_mysql创建表参数

默认情况,如果指定了一个不可用的存储引擎时会报错,可以通过删除SQL模式中的NO_ENGINE_SUBSTITUTION,在发生该错误时通过默认引擎替代指定的引擎。通常系统参数default_storage_engine为InnoDb。

2 AUTO_INCREMENT

表自增列的初始数字,在MySQL5.7中,该设置适用于MyIsam、Memory、InnoDb和Archive表。对于可用AUTH_INCREMENT的表,也可以使用ALTER TABLE tbl_name AUTH_INCREMENT = value来重新设置自增的初始值,但是该值必须要比表中现有数据的最大值大。

3 AVG_ROW_LENGTH

用于设置表中行数据平均长度,适用于拥有变行的较大表。当创建MyIsam表时,MySQL会根据MAX_ROWS和AVG_ROW_LENGTH参数来决定如何设置表,如果两个参数都没指定,MyIsam默认最大的数据长度和索引长度是256TB(如果操作系统不支持这么大则会按系统限制来)。如果想要设置较小的数值来减小索引大小来提高性能并且不需要这么大的文件,可以通过设置myisam_data_pointer_size系统变量,当然如果需要更大也可以增加此值,该值设置为7则能承受每个表大小为65536TB。

4 [DEFAULT] CHARACTER SET

指定表的默认字符集,CHARSET与CHARACTER SET同效,如果该值设置为DEFAULT,则表使用数据库的字符集。

engine mysql 设置 mysql中engine参数_engine mysql 设置_02

5 CHECKSUM

如果想要为MySQL所有的行维护一个校验和,可以将该值设置为1,当表改变时校验和会自动该表。这样会使表更新变慢,但是会更加容易地找到损坏的表。CHECKSUM TABLE tbl_name语句能显示表的校验和。

6 [DEFAULT] COLLATE

给表指定一个默认的校验集。

7 COMMENT

给表添加注释,允许长度为2048字符。NDB集群7.5.2后COMMENT用法有所不同,用时需额外注意参考其规范。

8 COMPRESSION

压缩算法应用于InnoDb表的页级压缩,支持算法包括zlib、liz4和none。在透明页压缩特性中引入了压缩参数,页压缩仅支持对于InnoDb表中数据文件的表空间压缩,并且还能用于win和linux平台中表碎片空间的压缩。