mysql 5.5版本开始;默认使用InnoDB存储引擎;它擅长事务处理;具有崩溃恢复特性;在日常开发中使用非常广泛。那么如何优化MySQL InnoDB表?第一步是确定您的数据库是否有碎片;然后连接到MySQL数据库并运行下面提到的查询;它会告诉您每个表有多少空闲空间。
登录MySQL命令提示符;
mysql [(none)] > use qzhuji_test;
mysql [qzhuji_test]> select table_name, data_length, data_free
-> from information_schema.tables
-> where table_schema=;<schema name>’
-> order by data_free desc;
要以MB为单位显示数据;请使用下面命令;
mysql [qzhuji_test]> select table_name,
-> round(data_length/1024/1024) as data_length_mb,
-> round(data_free/1024/1024) as data_free_mb
-> from information_schema.tables
-> where round(data_free/1024/1024) > 450
-> order by data_free_mb;
这将显示至少有450MB可用空间的所有表的列表。正如我们所看到的;在这个例子中有两个表有超过450MB的未使用空间。“表单”表的大小约为2.3GB。“form”表大约有1.2GB的空闲空间;从这些值中;我们可以看到表被大量地分割;为了避免这种情况;我们必须对其进行优化。
mysql [(none)] > use qzhuji_test;
mysql [qzhuji_test]> OPTIMIZE TABLE form;
优化后结果;