本文收集于本人的笔记本,由于找不到原文出处。在此省略,如哪位知道可以联系我加上。
这个存储过程目的是给一个库的所有表来整理碎片的。一个表随着插入很频繁,或者一直更新不停的,就会积累好多碎片。如果及时整理一下,查询效率会高出好多。
调用示例:
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)