MySQL список таблиц и их структура

Опубликовано:

Команды для работы со списком таблиц и их структурой.

список баз данных

SHOW DATABASES;

список таблиц в базе

SHOW TABLES [FROM db_name];

список столбцов в таблице

SHOW COLUMNS FROM таблица [FROM db_name];

показать структуру таблицы в формате «CREATE TABLE»

SHOW CREATE TABLE table_name;

список индексов

SHOW INDEX FROM tbl_name;

привилегии для пользователя.

SHOW GRANTS FOR user [FROM db_name];

значения системных переменных

SHOW VARIABLES;

статистика по mysqld процессам

SHOW [FULL] PROCESSLIST;

общая статистика

SHOW STATUS;

статистика по всем таблицам в базе

SHOW TABLE STATUS [FROM db_name];

статистика по всем таблицам wp_ в базе

SHOW TABLE STATUS LIKE  'wp%'

Проверка настроек кодировки

SHOW VARIABLES LIKE 'coll%';

Проверка настроек кодировки

SHOW VARIABLES LIKE'char%';

Проверка кодировки текущей базы данных

SHOW VARIABLES LIKE "character_set_database";

Для настройки кодировки utf8 по умолчанию
Необходимо внести следующие изменения в файл my.cnf (my.ini):

[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci’
character-set-server = utf8
collation-server = utf8_unicode_ci

[client]
default-character-set = utf8

  CREATE TABLE `table_new` FROM `table_orig`;

Информация об установленной версии pkg_info | grep mysql (FreeBSD)

добавить столбец в таблице в базе mysql

ALTER TABLE `table_name` ADD `vcolumn_name` INT( 11 ) NOT NULL;

переименование столбцов в таблице

ALTER TABLE `table` CHANGE COLUMN `test` `materials` INT(10) NOT NULL DEFAULT 0;

внести изменения в столбцы таблицы

ALTER TABLE `table` MODIFY COLUMN `test` SMALLINT NOT  NULL DEFAULT 0, `materials` SMALLINT NOT  NULL DEFAULT 0;
ALTER TABLE tablename ENGINE=MyISAM

В будущем, если включите innodb_file_per_table, сможете уменьшать объем tablespace путем
пересоздания таблиц сразу в InnoDB (т.к. в режиме файл-на-таблицу файл при удалении таблицы
стирается) командой

ALTER TABLE tablename ENGINE=InnoDB

Определение размера таблицы

SELECT
    table_name AS table_name,
    engine,
    ROUND(data_length/1024/1024,2) AS total_size_mb,
    table_rows
FROM
    information_schema.tables
WHERE
    table_schema=DATABASE();

Показывает обьем и количество строк в таблицах MySQL.

Перемещение таблицы MySQL в другую базу

mysql> RENAME TABLE database1.table TO database2.table;

Копирование таблицы MySQL в другую базу

mysql> CREATE TABLE database2.table LIKE database1.table;
mysql> INSERT INTO database2.table SELECT * FROM database1.table;

 

Копирование таблицы MySQL в другую базу с условием

mysql> CREATE TABLE database2.table LIKE database1.table;
mysql> INSERT INTO database2.table SELECT * FROM database1.table WHERE `row`='1';

Копирование необходимых столбцов таблицы  MySQL в другую базу

mysql> INSERT INTO database2.table(`row_1`, `row_2`, `row_3`) SELECT `row_1`, `row_2`, `row_3` FROM database1.table;

database1— база из которой копируем

database2 — база в которую копируем
table — название таблицы

Текущее состояние кэша

Посмотреть состояние кэша можно с помощью запроса:

mysql> SHOW GLOBAL STATUS LIKE 'Qcache%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 973      |
| Qcache_free_memory      | 14282000 |
| Qcache_hits             | 3293750  |
| Qcache_inserts          | 252819   |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 66645    |
| Qcache_queries_in_cache | 1342     |
| Qcache_total_blocks     | 3709     |
+-------------------------+----------+
8 rows in set (0.00 sec)

Здесь:

  • Qcache_free_memory — объем свободной памяти, отведенной под кэш.
  • Qcache_hits — количество запросов, отработанных из кэша.
  • Qcache_inserts — количество вставок запросов в кэш.
  • Qcache_lowmem_prunes — количество высвобождений памяти из-за наполненности кэша.
  • Qcache_not_cached — количество запросов, не подлежащих кэшированию.
  • Qcache_queries_in_cache — количество запросов, находящихся в кэше в настоящее время.

Мерой эффективности кэша может служить отношение Qcache_hits / (Qcache_inserts + Qcache_not_cached).

Дополнительные материалы:
MySQL полезные команды
MySQL работа с пользователи

Понравилась статья, расскажи о ней друзьям, нажми кнопку!