有许多强大的MySQL存储引擎可供我们使用,而InnoDB无疑是最受欢迎的存储引擎之一。它高度可靠和高效,因此它成为5.5版本以后所有MySQL的默认存储引擎也就不足为奇了。让我们更仔细地看看它的优点和功能。
内容
InnoDB服务器变量和性能调优技巧
以下是可用的InnoDB服务器变量列表,这些变量有助于加速和优化MySQL数据库和InnoDB存储引擎之间的性能和交互:
innodb_flush_log_at_trx_commit
此命令的基本语法是--innodb-flush-log-at-trx-commit=#.它配置事务刷新到重做日志的频率。
innodb_buffer_pool_size
此命令的基本语法是--innodb-buffer-pool-size=#.InnoDB缓冲池是一个内存域,InnoDB存储引擎在其中缓存其表和索引数据。默认值为134217728字节(128MB)。CPU架构定义了最大值,在32位系统上等于4294967295(232-1),在64位系统上等于18446744073709551615(264-1)。
innodb_buffer_pool_instances
此命令的基本语法是--innodb-buffer-pool-instances=#.它表示InnoDB缓冲池必须包含的区域数量。对于数GB范围内的缓冲池,将整个缓冲池划分为多个单独的实例可以提高并发性。
innodb_file_per_table
此命令的基本语法是--innodb-file-per-table[={OFF|ON}].启用该变量后,默认情况下会在每个表的文件表空间中生成表。如果禁用,则在系统表空间中生成表。
innodb_force_recovery
此命令的基本语法是--innodb-force-recovery=#.它是一种崩溃恢复模式,通常用于解决问题。允许的值范围为0到6。
innodb_lock_wait_timeout
在这种情况下,仅回滚语句。如果要回滚整个事务,请使用–innodb-rollback-on-timeout命令。
innodb_large_prefix
此命令的基本语法是--innodb-large-prefix[={OFF|ON}].如果启用此选项,则对于行格式为DYNAMIC或COMPRESSED的InnoDB表,允许使用超过767字节(最多3072字节)的索引键前缀。对于行格式为REDUNDANT或COMPACT的表,此命令不会影响允许的索引键前缀长度。
innodb_flush_method
使用--innodb-flush-method=value该命令指定将用于将数据刷新到InnoDB文件的方法。请注意,I/O吞吐量可能会受到影响。
innodb_thread_concurrency
此命令的基本语法是--innodb-thread-concurrency=#.它定义了InnoDB允许的最大线程数。无限并发由值0定义,默认设置。
innodb_log_buffer_size
此命令的基本语法是--innodb-log-buffer-size=#.这是尚未提交的事务的缓冲区大小。如果您使用大字段(如BLOB或TEXT),则应更改此参数的值。
innodb_io_capacity
此命令的基本语法是--innodb-io-capacity=#.它指定了InnoDB后台操作可访问的每秒I/O事务数(IOPS)。
innodb_strict_mode
此命令的基本语法是--innodb-strict-mode[={OFF|ON}].严格模式起到了屏蔽不同SQL语句序列和操作模式的各种意外结果的作用。当启用innodb_strict_mode时,InnoDB会针对特定条件发出错误。
innodb_autoinc_lock_mode
此命令的基本语法是--innodb-autoinc-lock-mode=#.自动递增值在锁定模式下生成。允许的值为0、1或2(分别用于传统、连续或交错锁定模式)。默认设置为1(连续)。
innodb_read_io_threads
使用--innodb-read-io-threads=#该命令定义InnoDB文件I/O流的数量。
innodb_data_file_path
此命令的基本语法是–innodb-data-file-path=file_name.它指定有关InnoDB系统表空间数据文件的信息。如果尚未定义innodb_data_file_path的值,则默认生成单个自动扩展数据文件。该数据文件名为ibdata1,大小约为12MB。
数据文件的完整语法如下:
file_name:file_size[:autoextend[:max:max_file_size]]
它由文件名、文件大小、自动扩展属性和最大属性组成。
请注意:在执行您的操作时,确保InnoDB没有使用它自己的内存而不是操作系统的内存是很重要的。在这种情况下,您将看到InnoDB内存堆被禁用的通知,并会显示错误。可以通过将innodb_use_sys_malloc的值设置为ON或1而不是0来解决。
处理InnoDB中最常见的错误
InnoDB中错误的处理并不总是与指定的SQL标准相同。例如,SQL语句中的错误必须导致所述语句的回滚。对于InnoDB,在某些情况下,失败的语句会被回滚;在其他情况下,整个事务会回滚。
使用InnoDB和dbForgeStudioforMySQL获得最高性能
现在我们想推荐一个IDE,它将促进您使用MySQL数据库和InnoDB引擎–dbForgeStudioforMySQL的工作。虽然它与所有流行的MySQL数据库引擎完全兼容,但InnoDB是值得特别提及的一个。
其次,您可以通过到Database菜单->ServerVariables找到上述服务器变量,如下面的屏幕截图所示。
打开类别:InnoDB,您将找到所有这些。
最后,dbForgeStudio支持XtraDB,它是InnoDB的向后兼容分支,由Percona为MariaDB和PerconaServer数据库开发。