28
2024
08
16:44:11

mysql数据碎片太多怎么办? mysql 压缩数据库

1. 整体流程

下面是实现MySQL数据库压缩的整体流程,以表格形式展示:


步骤 描述

1. 连接到MySQL数据库

2. 停止数据库的写入操作

3. 将数据库导出为SQL文件

4. 创建一个新的、空的数据库

5. 导入SQL文件到新的数据库

6. 优化新的数据库

7. 删除旧的数据库

8. 修改配置文件以使用新的数据库

9. 重新启动数据库并验证压缩效果

2. 具体步骤及代码

2.1 连接到MySQL数据库

使用以下命令连接到MySQL数据库:


mysql -u username -p

1.

其中,username为你的MySQL用户名。


2.2 停止数据库的写入操作

使用以下命令停止数据库的写入操作:


FLUSH TABLES WITH READ LOCK;

1.

2.3 将数据库导出为SQL文件

使用以下命令将数据库导出为SQL文件:


mysqldump -u username -p database_name > database_name.sql

1.

其中,username为你的MySQL用户名,database_name为你要压缩的数据库名称。


2.4 创建一个新的、空的数据库

使用以下命令创建一个新的、空的数据库:


CREATE DATABASE compressed_database;

1.

其中,compressed_database为新创建的数据库名称。


2.5 导入SQL文件到新的数据库

使用以下命令导入SQL文件到新的数据库:


mysql -u username -p compressed_database < database_name.sql

1.

其中,username为你的MySQL用户名,compressed_database为新创建的数据库名称,database_name.sql为之前导出的SQL文件。


2.6 优化新的数据库

使用以下命令优化新的数据库:


OPTIMIZE TABLE table_name;

1.

其中,table_name为新的数据库中的表名。


2.7 删除旧的数据库

使用以下命令删除旧的数据库:


DROP DATABASE database_name;

1.

其中,database_name为之前导出的SQL文件中的数据库名称。


2.8 修改配置文件以使用新的数据库

打开MySQL服务器的配置文件,通常位于/etc/mysql/my.cnf或/etc/my.cnf,找到以下行:


#datadir         = /var/lib/mysql

1.

将其更改为:


datadir         = /path/to/compressed_database

1.

其中,/path/to/compressed_database为新的数据库的存储路径。


2.9 重新启动数据库并验证压缩效果

使用以下命令重新启动数据库:


sudo service mysql restart

1.

然后,使用以下命令连接到MySQL数据库并验证压缩效果:


SHOW DATABASES;

1.

确保压缩后的数据库显示在列表中。


3. 数据库关系图

下面是数据库的关系图,使用mermaid语法的erDiagram标识:


erDiagram

    DATABASE compressed_database {

        table1 {

            +id (PK)

            field1

            field2

            ...

        }

        table2 {

            +id (PK)

            field1

            field2

            ...

        }

        ...

    }

这是一个示例关系图,根据你的数据库结构进行相应的调整。


结论

通过按照上述步骤和代码进行操作,你可以成功压缩MySQL数据库。请注意,在执行任何操作之前,务必备份数据库以防止数据丢失。


















mysql数据碎片太多的解决方法:1、进入phpmyadmin页面,点击左侧栏要管理的mysql数据库,在数据库最右侧有一列名为“多余”;2、点击数据表列表下面的“仅选择多余”,再点击后面的下拉菜单,点击“优化表”,即可优化、清除碎片。

mysql数据碎片太多怎么办?

本文操作环境:Windows7系统、Dell G3电脑、discuz7.1&&WordPress5.4.2。

网站数据库频繁读写,会形成大量碎片,严重影响读写速度,也会影响网站访问体验。因此,需要定期优化数据表,清理数据库碎片。

大多网站使用的是MySQL数据库,网站程序不同,优化整理MySQL数据库碎片的方法也有区别。

下面以Discuz!网站、WordPress网站为例,详细介绍一下整理MySQL数据库碎片的方法和步骤。

点击下载C盘瘦身工具,一键清理C盘”;

同时,也以两种优化数据库的方法进行互相验证,看一下碎片整理最终效果如何。

  • 优化、整理Discuz!网站MySQL数据库碎片的方法

如果使用的是Discuz!创建的网站,查看数据库有没有碎片,以及优化、整理数据库碎片的操作,都可以在Discuz!管理后台进行,这也是Discuz!程序易于使用的优点之一。

查看、优化Discuz!网站的MySQL数据库碎片的途径是,使用网站创始人(站长)帐号登录网站管理后台,点击顶部菜单“站长”-左侧栏“数据库”-“优化”,如下图:

1.png

通过上图可以看到,这个Discuz!网站有大量碎片的数据表已经很多了,底部显示碎片数据表大小为96.37M了。

对Discuz!网站的数据库碎片进行优化、整理,也非常方便,直接保持默认的所有待优化数据表被勾选的状态,点击下部的优化“提交”按钮,就可以对网站的MySQL数据库碎片进行优化整理,去除碎片。

  • 优化、整理WordPress网站MySQL数据库碎片的方法

WordPress网站也是使用的MySQL数据库,与Discuz!不同的是,不能在WordPress后台直接对数据库碎片进行查看和优化。

查看WordPress网站的数据库碎片情况,有两个途径:

首先安装MySQL数据库管理插件

不推荐使用这种方式,因为使用插件的风险很大,特别是管理数据库这么重要的事情,一旦出差错,网站会有灭顶之灾,一定要慎重。

然后登录cPanel主机控制面板,通过phpMyAdmin管理页面

登录WordPress网站的cPanel主机管理面板页面,在“数据库”栏下,点击“phpMyAdmin”MySQL数据库管理程序,如下图:

2.png

进入phpMyAdmin页面后,点击左侧栏要管理的网站MySQL数据库,在数据库最右侧有一列名为“多余”,如下图:

3.png

phpMyAdmin管理页面上显示的MySQL数据库表的“多余”是什么意思呢?是如何形成的?

由于数据库在不断的读写过程中,不断有数据被写入,也不断有数据被删除,当有数据被删除时,后面的数据记录不可能全部前移,这就形成了闲置的空间,这就是“多余”数据。通俗地说,这些“多余”,就是数据库的“碎片”,因为它们造成了数据的不连贯,当然也就影响了数据库的读写速度。

因此,优化这些有“多余”数据的数据表,也就是整理数据库碎片。

优化、清理这些MySQL数据库中名为“多余”的碎片的方法是:点击数据表列表下面的“仅选择多余”,再点击后面的下拉菜单,点击“优化表”,就可以优化、清除这些“多余”碎片,如下图:

4.png

提示“您的 SQL 语句已成功运行”,优化成功。这时候可以看到MySQL数据表“多余”一列中,已经是空白状态了,没有碎片了。

  • 整理MySQL数据库碎片的效果验证

为了验证phpMyAdmin页面中,MySQL数据库表中的“多余”是不是碎片;进行“优化表”操作,到底能否去除这些碎片,上面进行“优化表”,清理“多余”数据时,其实选择的是一个Discuz!网站的数据库。当然,优化WordPress网站数据库的操作也是一样的步骤。

在phpMyAdmin页面对Discuz!网站的MySQL数据库进行了“优化表”的操作之后,现在再登录Discuz!网站管理后台查看优化效果。

进入“站长”-“数据库”-“优化”,会看到待优化数据表列表为空,下面也有提示“数据表没有碎片,不需要进行优化”,如下图:

5.png

通过这样互相验证,可见phpMyAdmin页面中MySQL数据表的“多余”,的确是数据库“碎片”。而且选择多余数据表后,进行“优化表”操作,也可以有效地清理MySQL数据库的碎片。

为了让网站在良好的状态下运行,应该定期对网站的MySQL数据库碎片进行整理。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/7816.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: