MySQL список таблиц и их структура
Для настройки кодировки utf8 по умолчанию
Необходимо внести следующие изменения в файл my.cnf (my.ini):
[mysqld]
[client]
default-character-set = utf8
Информация об установленной версии pkg_info | grep mysql (FreeBSD)
добавить столбец в таблице в базе mysql
переименование столбцов в таблице
внести изменения в столбцы таблицы
В будущем, если включите innodb_file_per_table, сможете уменьшать объем tablespace путем
пересоздания таблиц сразу в InnoDB (т.к. в режиме файл-на-таблицу файл при удалении таблицы
стирается) командой
Определение размера таблицы
Показывает обьем и количество строк в таблицах MySQL.
Перемещение таблицы MySQL в другую базу
Копирование таблицы MySQL в другую базу
Копирование таблицы MySQL в другую базу с условием
Копирование необходимых столбцов таблицы MySQL в другую базу
database1— база из которой копируем
database2 — база в которую копируем
table — название таблицы
Текущее состояние кэша
Посмотреть состояние кэша можно с помощью запроса:
- 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 эта проблема решается при помощи нескольких команд, выводящих информацию о базе данных и содержащихся в ней таблицах.
Вы уже познакомились с командой SHOW DATABASES , выводящей список управляемых сервером баз данных. Определить, какая из них выбрана в данный момент, можно с помощью функции DATABASE() :
Если ни одна из баз не выбрана, результат будет пуст.
Выяснить, какие таблицы содержит текущая база данных (что необходимо, если, например, никак не получается вспомнить имя нужной таблицы), можно при помощи следующей команды:
Узнать структуру таблицы можно при помощи команды DESCRIBE , которая выводит информацию о каждом из столбцов таблицы:
Field — имя столбца, Type — тип данных, к которому относится этот столбец, NULL указывает, может ли данный столбец содержать значения NULL , Key — является ли этот столбец индексным, и, наконец, Default указывает значение данного столбца по умолчанию.
Если для таблицы созданы индексы, информацию о них можно получить с помощью команды SHOW INDEX FROM tbl_name .
Работаем с MySQL через командную строку
Если на экране появляется приветствие mysql, то всё прошло ok.
Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой ";". При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить ";" и нажать "enter".
Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:
Результатом будет что то вроде этого:
Выбрать базу данных jeka:
Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):
Просмотреть структуру таблицы (имена и тип полей):
Достать информацию о юзере с >
Бэкап структуры таблицы, а точнее sql-запрос на её создание
Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:
Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:
Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.
Подробнее о том, как изменять структуру mysql-таблиц (alter table).
Что делать если вижу знаки вопросов вместо текста в MySQL?
Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:
Нужно добавить в .ini файл либо выполнить в консоли команду "SET NAMES utf8", после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:
Как сделать бэкап базы mysql через консоль Linux?
Сделать бэкап базы database в файл dump_name.sql
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.
Развернуть базу из файла через командную строку
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу
Сделать дамп структуры одной таблицы mysql (без данных):
Например, задампим таблицу users из базы данных mydatabase:
Развернуть mysql-dump в БД с именем database_name:
Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:
Заключение
Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.
Дата добавления: 10 лет назад
mysql
- Как добавить AI в существующую таблицу MySQL? 2 ответа
- Получить комментарии к полям mysql-таблицы 1 ответ
- На PHP Access denied for user ‘root’@’localhost’, хотя через консоль подключается 1 ответ
- Как очистить все таблицы в базе данных mysql? 0 ответов
- MySQL ошибки Lost connection to MySQL server at ‘waiting for initial communication packet’ 1 ответ
- MySQL — изменение полей, структуры таблицы 0 комментариев
- Запросы инъекции для mysql 0 комментариев
- Доступ к mysql из-вне3 комментария
- Mysql перенос таблиц из одной базы данных в другую 0 комментариев
- Анализ производительности MySQL с использованием performance_schema 0 комментариев
Комментарии 2
Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.
Как посмотреть структуру таблицы mysql
В данной статье речь пойдет о работе с таблицами, будут рассмотрены основные типы таблиц используемых в MySQL или как их еще называют типы движков таблиц, а также основные команды, используемые для создания, удаления, просмотра, переименование и копирования таблиц. Заканчивается статься рассмотрением команд для работы со столбцами таблиц — команды для добавления нового столбца в таблицу, удаления существующего столбца, изменение имени, типа и свойств столбца.
Просмотр списка поддерживаемых типов таблиц
Engine – содержит типы таблиц.
support — поддержка определенного типа таблиц.
Comment – содержит краткое описание.
Transactions — поддержка транзакций.
Типы движков таблиц
FEDERATED – используется для объединения нескольких MySQL серверов в одну логическую базу.
MRG_MYISAM (MERGE) – позволяет логически объединить MyISAM таблицы c идентичной структурой в одну, таблицы должны иметь идентичную структуру.
MyISAM – один из самых распространенных типов таблиц MySQL, используемый в Web-приложениях, поддерживается всеми дистрибутива MySQL, является не транзакционным типом таблиц и не поддерживает внешние ключи.
BLACKHOLE (черная дыра) – таблица не содержит никаких данных, все данные записанные в эту таблицу исчезают (/dev/null). Результатом запроса выборки всегда будут пустые строки.
CSV – таблицы хранятся в текстовом файле формата CSV с запятой в качестве разделителя, для редактирования можно использовать любой текстовый редактор.
MEMEORY (HEAP) – данные хранятся в оперативной памяти, что позволяет реализовать быстрый доступ к данным.
ARCHIVE – сжатые таблицы без индексов, подходит для хранения больших объёмов данных, к которым не нужен постоянный доступ, характерная особенность — медленное выполнение запросов и отсутствие поддержки запросов типа DELETE, REPLACE, UPDATE.
InnoDB – база данных поддерживает транзакций, возможность отмены транзакции, блокировку доступа на уровне строк, использование внешних ключей (FOREIGN KEY). Начиная c версии 5.5.5, этот тип используется по умолчанию.
Создание таблиц.
Из примера видно, что многие из параметров необязательны, т.е. для создания таблицы достаточно указать имя таблицы (Test1) и имена и типы столбцов (Name1 VARCHAR(10)) .
Данный пример демонстрирует, что при создание таблицы командой ENGINE можно выбрать тип таблицы (InnoDB) и задать используемую кодировку в таблице (CHARACTER SET utf8). С помощью PRIMARY KEY (id) мы указали что столбец id будет первичным ключом, а тип NOT NULL AUTO_INCREMENT позволяет автоматически нумеровать строки таблицы столбца id.
Удаление таблиц
Переименование таблиц
Просмотр списка таблиц
Выводит список всех таблиц из выбранной базы данных с помощью команды USE.
Выводит список всех таблиц из указанной базы данных.
Выводит список всех таблиц из выбранной базы данных с помощью команды USE, и содержащих в название перечисленные символы.
Выводит список таблиц содержащих в название символы est.
Просмотр детальной информации о таблице, ее структуры.
Просмотр кода с помощью которого создавалась таблица.
Копирование таблиц.
Выполняемые запросы копируют структуру таблицы и содержащиеся в ней данные, из выбранной базы данных с помощью команды USE.
Копирование таблиц из одной базы в другую.
имя_db – имя базы данных.
Добавление столбца к таблице
Команда FIRST добавляет столбец в начало, делает первым новый столбец. Команда AFTER добавляет столбец вслед за указанным. Если эти команды не используются, то столбец добавляется в конец таблицы.