{"id":605,"date":"2012-11-27T20:34:50","date_gmt":"2012-11-28T01:34:50","guid":{"rendered":"http:\/\/www.latindevelopers.com\/ivancp\/?p=605"},"modified":"2012-11-27T20:56:52","modified_gmt":"2012-11-28T01:56:52","slug":"mysql-vista-global-de-las-bases-de-datos","status":"publish","type":"post","link":"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/","title":{"rendered":"MySQL Vista global de las bases de datos"},"content":{"rendered":"<p>Cansado de tener que averiguar manualmente \u00a0cuanto espacio ocupan mis bases de datos, acabo de crear un procedimiento almacenado para tener una vista global de las bases de datos que tenemos en nuestro servidor MySQL.<\/p>\n<p>En MySQL no hay disponible \u00a0un comando que nos permita tener una resumen global de las bases de datos, algo que se parezca a SHOW TABLE STATUS pero para todas las bases de datos. El comando SHOW DATABASES s\u00f3lo lista las bases actuales pero no nos dice cuanto espacio ocupan o cuantas tablas hay, etc.<\/p>\n<p>El procedimiento que escrib\u00ed esta basado en la base de datos INFORMATION_SCHEMA, que contiene mucha informaci\u00f3n de todas las bases de datos existentes.<\/p>\n<p>Ya antes en un <a title=\"MySQL: show table status mejorado\" href=\"http:\/\/www.latindevelopers.com\/ivancp\/2011\/04\/show-table-status-mejorado\/\">post anterior<\/a>\u00a0mencion\u00e9 que podemos tener todas estas \u00abherramientas\u00bb en una base de datos llamada tools, es por eso que recomiendo que \u00e9ste procedimiento este en la misma base de datos tools (pero de todos modos puedes elegir otro lugar)<\/p>\n<p>Al llamar al procedimiento si tenemos una vista global con informaci&oacute;n que nos ser&aacute; de utilidad para tas tareas de mantenimiento. <\/p>\n<p>&nbsp;<\/p>\n<pre lang=\"text\">mysql> call tools.sp_overview();\r\n+------------------------------+---------+--------+----------+---------+\r\n| Database                     | Charset | Tables | Routines | Size Mb |\r\n+------------------------------+---------+--------+----------+---------+\r\n| database1                    | utf8    |     43 |       28 |     7.0 |\r\n| database2                    | latin1  |     43 |       28 |   205.0 |\r\n| database3                    | utf8    |    116 |        0 |   126.2 |\r\n| database4                    | utf8    |     99 |        0 |     0.3 |\r\n| database5                    | utf8    |    165 |        0 |    77.4 |\r\n| database6                    | utf8    |    121 |        2 |   719.4 |\r\n| database7                    | utf8    |    122 |        0 |    91.3 |\r\n| database8                    | utf8    |    116 |        0 |    89.7 |\r\n| database9                    | utf8    |    124 |        0 |     4.5 |\r\n| database10                   | utf8    |    113 |        0 |   147.7 |\r\n| database11                   | latin1  |    119 |        3 |   436.4 |\r\n| database12                   | latin1  |    122 |        0 |   439.1 |\r\n| database13                   | latin1  |    122 |        4 |   452.7 |\r\n| database14                   | utf8    |    115 |        0 |   273.0 |\r\n| database15                   | utf8    |    122 |        0 |   265.5 |\r\n| database16                   | utf8    |      0 |        0 |    NULL |\r\n| database17                   | latin1  |     26 |        0 |     0.9 |\r\n| database18                   | latin1  |      9 |        0 |     0.0 |\r\n| database19                   | latin1  |     22 |        0 |     0.3 |\r\n+------------------------------+---------+--------+----------+---------+\r\n19 rows in set (3.01 sec)<\/pre>\n<p>&nbsp;<\/p>\n<p>Advierto que la primera vez el procedimiento es muy lento, y puede demorar varios segundos.<\/p>\n<p>Aqu\u00ed tienen El c\u00f3digo fuente del procedimiento: <\/p>\n<p>&nbsp; <\/p>\n<pre lang=\"sql\">\r\nDELIMITER $$\r\n\r\nDROP PROCEDURE IF EXISTS tools.sp_overview$$\r\nCREATE PROCEDURE tools.sp_overview()\r\nBEGIN\r\n\r\n    SELECT s.SCHEMA_NAME as `Database`, s.DEFAULT_CHARACTER_SET_NAME as `Charset`,\r\n        count(t.TABLE_NAME) as `Tables`,\r\n\r\n        (SELECT count(*) from information_schema.ROUTINES as r\r\n            WHERE r.routine_schema = s.SCHEMA_NAME) as `Routines`,\r\n\r\n         round(sum(t.DATA_LENGTH + t.INDEX_LENGTH) \/ 1048576 ,1) as `Size Mb`\r\n\r\n        FROM information_schema.SCHEMATA AS s\r\n            LEFT JOIN information_schema.TABLES t on s.schema_name = t.table_schema\r\n        WHERE s.SCHEMA_NAME not in ('information_schema', 'performance_schema')\r\n\r\n    GROUP BY s.SCHEMA_NAME;\r\nEND$$\r\nDELIMITER ;<\/pre>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-605\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-605\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-605\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Cansado de tener que averiguar manualmente \u00a0cuanto espacio ocupan mis bases de datos, acabo de crear un procedimiento almacenado para tener una vista global de las bases de datos que tenemos en nuestro servidor MySQL. En MySQL no hay disponible &hellip; <a href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-605\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-605\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-605\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/11\/mysql-vista-global-de-las-bases-de-datos\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[7],"tags":[17,12,30],"jetpack_featured_media_url":"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/logo-mysql-170x115-e1302270861102.png","jetpack_shortlink":"https:\/\/wp.me\/p1tEO5-9L","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/605"}],"collection":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/comments?post=605"}],"version-history":[{"count":10,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/605\/revisions"}],"predecessor-version":[{"id":617,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/605\/revisions\/617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media\/249"}],"wp:attachment":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media?parent=605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/categories?post=605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/tags?post=605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}