本文收集于本人的筆記本,由于找不到原文出處。在此省略,如哪位知道可以聯系我加上。
這個存儲過程目的是給一個庫的所有表來整理碎片的。一個表随着插入很頻繁,或者一直更新不停的,就會積累好多碎片。如果及時整理一下,查詢效率會高出好多。
調用示例:
mysql> use mysql
Database changed
mysql> call sp_optimize_tables('david_test');
+------------------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
| david_test.test1 | optimize | status | OK |
1 row in set (0.26 sec)
+--------------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
| david_test.test2| optimize | status | OK |
1 row in set (0.35 sec)
+---------------------------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
| david_test.test3 | optimize | status | OK |
1 row in set (0.45 sec)
| david_test.test_article | optimize | status | OK |
1 row in set (4.13 sec)
...
+----------------------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
| david_test.test_article_content | optimize | status | OK |
1 row in set (37.81 sec)
+-----------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
| david_test.members | optimize | status | OK |
1 row in set (40.02 sec)
+--------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
| david_test.test_site | optimize | status | OK |
1 row in set (40.31 sec)
+--------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
| david_test.t | optimize | status | OK |
1 row in set (41.10 sec)
Query OK, 0 rows affected (41.13 sec)