如何解决MySQL表大小在主服务器上不正确但在从服务器上正确
我有一个mysql主服务器-将奴隶设置为两个不同实例上的docker容器,并将数据文件夹卷安装到磁盘上。设置从站后,复制正常开始。现在,我尝试按以下步骤在主数据库上导入sql转储文件-
docker exec -i mysql-master sh -c 'exec mysql -u root_user --p' < mydb.sql
数据正确反映在从属服务器上,我什至执行了CHECKSUM TABLE mydb.tablename
并且主服务器和从属服务器上的输出都相同。
但是,当我检查两个mysql实例的表大小时,我发现有些奇怪。
SELECT
table_schema as `Database`,table_name AS `Table`,round(((data_length + index_length) / 1024 / 1024),2) `Size in MB`
FROM information_schema.TABLES
ORDER BY (data_length + index_length) DESC;
我使用上面的命令检查表的大小,我注意到从属服务器中的表大小约为10GB,这是我期望的。但是主服务器上只有几个MB。需要注意的是,磁盘空间已在主服务器和从服务器上使用。
主机和从机上的表数据均正确。但是,TABLE SIZE相差很大。
一些额外的信息-slave.cnf
[mysqld]
log_error=/var/log/mysqld.log
max_allowed_packet=16M
character_set_server=utf8
collation_server=utf8_general_ci
binlog_format = ROW
server-id=2
relay-log = /var/lib/mysql/mysql-relay-bin.log
log_bin = /var/lib/mysql/mysql-bin.log
master.cnf
[mysqld]
log_error=/var/log/mysqld.log
max_allowed_packet=16M
character_set_server=utf8
collation_server=utf8_general_ci
binlog_format = ROW
server-id=1
log_bin = /var/lib/mysql/mysql-bin.log
我尝试了OPTIMIZE TABLE 'tablename';
,但没有帮助。
有人知道这可能是什么问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。