TOP ▲ itcore TOPTIPSmysql_clean.php  タグ:mysql クリーニング

MySQL 不要なDBのクリーニング | itcore 2019年

バックアップ

安全のためにDB毎のバックアップをとる。

DB一覧

mysql> show databases

DB内容確認

mysql> use sc80
Database changed
mysql> show tables;
Empty set (0.00 sec)

DB削除

※要注意 DB名間違えないように
mysql> drop database sc80;
Query OK, 0 rows affected (0.08 sec)

大きなデータの削減


全てのデータベースをデータベース毎のファイルにバックアップする。

DB毎のバックアップから容量の大きいDBを把握する。
-rw-r--r-- 1 root root 751338452 3月 23 06:47 ehr-20190323_064654.sql
-rw-r--r-- 1 root root 3051970 3月 23 06:48 koganepod-20190323_064828.sql
-rw-r--r-- 1 root root 520766 3月 23 06:48 mysql-20190323_064828.sql
-rw-r--r-- 1 root root 56560 3月 23 06:48 ob-20190323_064828.sql
-rw-r--r-- 1 root root 16752 3月 23 06:48 performance_schema-20190323_064828.sql
-rw-r--r-- 1 root root 2201167802 3月 23 06:49 uri-20190323_064828.sql

大きなDB(uri)のテーブル毎のバックアップをとる。

uriの大きなテーブルを調べる。
root@linux1:/var/bkup_mysql# ls -l /var/bkup_mysql/ |grep ' uri-' |awk '{print $5,$9}'|sort -rn|head
2201167802 uri-20190323_064828.sql
2200986606 uri-20190321_141517.sql
2014083606 uri-Seikyu_Image-20190323_073836.sql
58600893 uri-YayoiImport-20190323_073952.sql
41662365 uri-OrderImage-20190323_073833.sql
23818294 uri-OrderTable-20190323_073835.sql
11646908 uri-SaiyoImage-20190323_073836.sql
11483463 uri-ItemTable-20190323_073832.sql
8918157 uri-Shiharai-20190323_073951.sql
6418236 uri-Seikyu_delete-20190323_073951.sql

mysql> use uri
mysql> desc Seikyu_Image;
+----------------------+-------------+------+-----+-------------------+-----------------------------+
| Field                | Type        | Null | Key | Default           | Extra                       |
+----------------------+-------------+------+-----+-------------------+-----------------------------+
| si01_order_id        | varchar(6)  | NO   | PRI |                   |                             |
| si02_seq             | int(11)     | NO   | PRI | 0                 |                             |
| si03_title           | varchar(50) | YES  |     | NULL              |                             |
| si04_last_update     | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| si05_pdf_body        | mediumblob  | YES  |     | NULL              |                             |
| si06_saihakkou_check | int(11)     | YES  |     | NULL              |                             |
+----------------------+-------------+------+-----+-------------------+-----------------------------+
mysql> select count(*) from Seikyu_Image;
mysql> select left(si04_last_update,4), count(*) from Seikyu_Image group by left(si04_last_update,4);
+--------------------------+----------+
| left(si04_last_update,4) | count(*) |
+--------------------------+----------+
| 2006                     |     1922 |
| 2007                     |     4413 |
| 2008                     |     4401 |
| 2009                     |     3583 |
| 2010                     |     3475 |
| 2011                     |     2944 |
| 2012                     |     2217 |
| 2013                     |     1327 |
| 2014                     |      670 |
| 2015                     |      601 |
| 2016                     |      315 |
| 2017                     |      278 |
| 2018                     |      294 |
| 2019                     |       91 |
+--------------------------+----------+
10年以上前のデータを削除する。
mysql> select count(*) from Seikyu_Image where left(si04_last_update,4) < 2009;
mysql> delete from Seikyu_Image where left(si04_last_update,4) < 2009;
mysql> select left(si04_last_update,4), count(*) from Seikyu_Image group by left(si04_last_update,4);
+--------------------------+----------+
| left(si04_last_update,4) | count(*) |
+--------------------------+----------+
| 2009                     |     3583 |
| 2010                     |     3475 |
| 2011                     |     2944 |
| 2012                     |     2217 |
| 2013                     |     1327 |
| 2014                     |      670 |
| 2015                     |      601 |
| 2016                     |      315 |
| 2017                     |      278 |
| 2018                     |      294 |
| 2019                     |       91 |
+--------------------------+----------+