Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何减少MySQL';在phpMyAdmin中显示的系统开销?_Mysql_Phpmyadmin - Fatal编程技术网

如何减少MySQL';在phpMyAdmin中显示的系统开销?

如何减少MySQL';在phpMyAdmin中显示的系统开销?,mysql,phpmyadmin,Mysql,Phpmyadmin,在我的MySQL数据库中,我看到以下统计信息: Type Usage Data 16,384 Bytes Index 32,768 Bytes Overhead 405,0 MB Effective -424,624,128 Bytes Total 49,152 Bytes 当我尝试执行以下命令时,check table,ALTER table'mytable'ENGINE=INNODB,OPTIMIZE table,开销没

在我的MySQL数据库中,我看到以下统计信息:

Type    Usage  
Data    16,384  Bytes  
Index   32,768  Bytes  
Overhead    405,0   MB  
Effective   -424,624,128    Bytes  
Total   49,152  Bytes  
当我尝试执行以下命令时,
check table
ALTER table'mytable'ENGINE=INNODB
OPTIMIZE table
,开销没有发生任何变化

为什么什么都没有发生,我应该担心,什么时候我应该担心?我还看到了其他一些问题,它们表明“当开销变得太大时,需要担心”。什么太大?

运行:

OPTIMIZE TABLE table_name;
在您希望修复的每个表上—这将减少开销。另一个选项是使用以下命令:

/usr/bin/mysqlcheck --auto-repair --check --optimize --all-databases

这将检查、修复和优化所有数据库中的所有表。

PHPMyAdmin中的开销由SHOW TABLE STATUS返回的“Data\u free”列计算。 MySQL文档中实际上对此进行了解释:

Data_free:已分配但未使用的字节数

从MySQL 5.1.24开始,InnoDB也会显示此信息 表(以前,它位于注释值中)。InnoDB表格报告 表所属的表空间的可用空间。暂时 表位于共享表空间中,这是 共享表空间。如果使用多个表空间和 有自己的表空间,可用空间仅用于该表。自由的 空间是指完全可用的1MB数据块数减去安全值 边缘即使可用空间显示为0,也可以插入 只要有新的扩展数据块,就不需要分配行

但是对于InnoDB来说,这一点很重要:“InnoDB表报告表所属表空间的可用空间。对于位于共享表空间中的表,这是共享表空间的可用空间。”。因此,使用典型的InnoDB设置(“未设置innondb_file_per_table”),您将获得所有表的可用空间,而不是单个表的可用空间。这可能就是phpMyAdmin忽略/丢弃信息的原因,或者在优化表上什么都没有发生


您应该阅读这篇文章,它清楚地解释了如何在innodb中优化表。

我认为运行优化表应该可以解决开销问题。我不确定,但我认为它不适用于InnoDB。这似乎重复了这个问题与phpMyAdmin有什么关系?@Mchl这些命令在phpMyAdmin中是可执行的。@Abhay忘记添加该命令,但这不会改变开销大小。同样,这也是同样的问题,但它不能回答我的问题,因为它不起作用。