Перечень таблиц PostgreSQL
Иногда требуется получить перечень таблиц базы данных. Для этого используем следующий запрос:
information_schema — стандартная схема базы данных, которая содержит коллекции представлений (views), таких как таблицы, поля и т.д. Представления таблиц содержат информацию обо всех таблицах баз данных.
Запрос, описанный ниже, выберет все таблицы из указанной схемы текущей базы данных:
#PostgreSQL
👉 @database_info
Иногда требуется получить перечень таблиц базы данных. Для этого используем следующий запрос:
SELECT table_name FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','pg_catalog');information_schema — стандартная схема базы данных, которая содержит коллекции представлений (views), таких как таблицы, поля и т.д. Представления таблиц содержат информацию обо всех таблицах баз данных.
Запрос, описанный ниже, выберет все таблицы из указанной схемы текущей базы данных:
SELECT table_name FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema', 'pg_catalog')
AND table_schema IN('public', 'myschema');
#PostgreSQL
👉 @database_info
👍3
Размер таблицы
По аналогии с получением размера базы данных размер данных таблицы можно вычислить с помощью соответствующей функции:
Функция pg_relation_size возвращает объём, который занимает на диске указанный слой заданной таблицы или индекса.
Имя самой большой таблицы
Для того, чтобы вывести список таблиц текущей базы данных, отсортированный по размеру таблицы, выполним следующий запрос:
Для того, чтобы вывести информацию о самой большой таблице, ограничим запрос с помощью LIMIT:
relname — имя таблицы, индекса, представления и т.п.
relpages — размер представления этой таблицы на диске в количествах страниц (по умолчанию одна страницы равна 8 Кб).
pg_class — системная таблица, которая содержит информацию о связях таблиц базы данных.
#PostgreSQL
👉 @database_info
По аналогии с получением размера базы данных размер данных таблицы можно вычислить с помощью соответствующей функции:
SELECT pg_relation_size('accounts');Функция pg_relation_size возвращает объём, который занимает на диске указанный слой заданной таблицы или индекса.
Имя самой большой таблицы
Для того, чтобы вывести список таблиц текущей базы данных, отсортированный по размеру таблицы, выполним следующий запрос:
SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;Для того, чтобы вывести информацию о самой большой таблице, ограничим запрос с помощью LIMIT:
SELECT relname, relpages FROM pg_class ORDER BY relpages DESC LIMIT 1;relname — имя таблицы, индекса, представления и т.п.
relpages — размер представления этой таблицы на диске в количествах страниц (по умолчанию одна страницы равна 8 Кб).
pg_class — системная таблица, которая содержит информацию о связях таблиц базы данных.
#PostgreSQL
👉 @database_info
👍2
MySQL
Auto insert with TimeStamp
Copy Database
Create User
Delete User
or
Change Password
CSV Import / Export
Tips
Export to CSV
#MySQL
👉 @database_info
Auto insert with TimeStamp
CREATE TABLE test (
id INTEGER,
txt VARCHAR(20),
ts1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);Copy Database
mysqldump -u root -p db1 > dump.sql
mysqladmin -u root -p create db2
mysql -u root -p db2 < dump.sql
Create User
mysql> grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on DBNAME.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;
--all DB
mysql> grant all privileges on *.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on *.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;Delete User
mysql> drop user USERNAME;or
mysql> delete from mysql.user where user = 'USERNAME';Change Password
--User
mysql> set password for USER@"%" = password('PASSWORD');
mysql> set password for USER@localhost = password('PASSWORD');
--root
mysql> set password for root=password('PASSWORD');
mysql> set password for root@localhost=password('PASSWORD');
CSV Import / Export
ERROR 1045 (28000) at line 1: Access denied for user 'USER'@'localhost' (using password: YES)
mysql> grant file on *.* to USER@localhost;
Tips
--Create table as same data and type
mysql> create table newtable as select * from orgtable;--Create table with same type. data is null.
mysql> create table newtable as select * from orgtable where id is null;Export to CSV
# mysql -uUSER -pPASS DATABASE -e "select * from TABLE;" | sed -e 's/^/"/g' | sed -e 's/$/"/g' | sed -e 's/\t/","/g' > /tmp/test.csv
#MySQL
👉 @database_info
🔥4
Получение информации о базе данных PostgreSQL
Перечень подключенных пользователей
Чтобы узнать имя, IP и используемый порт подключенных пользователей, выполним следующий запрос:
Активность пользователя
Чтобы узнать активность соединения конкретного пользователя, используем следующий запрос:
#PostgreSQL
👉 @database_info
Перечень подключенных пользователей
Чтобы узнать имя, IP и используемый порт подключенных пользователей, выполним следующий запрос:
SELECT datname,usename,client_addr,client_port FROM pg_stat_activity;Активность пользователя
Чтобы узнать активность соединения конкретного пользователя, используем следующий запрос:
SELECT datname FROM pg_stat_activity WHERE usename = 'devuser';#PostgreSQL
👉 @database_info
👍3
MySQL: Определяйте where с параметром limit
Допустим, что вы ищете одну строку, но запрос делается ко всем таблицам. Почему бы не оптимизировать производительность путем добавления параметра LIMIT 1 и возврата только той части, которая была запрошена? Этот метод, вместо просмотра всей таблицы (таблиц) или индексов, остановит поиск после нахождения искомой строки.
#MySQL
👉 @database_info
Допустим, что вы ищете одну строку, но запрос делается ко всем таблицам. Почему бы не оптимизировать производительность путем добавления параметра LIMIT 1 и возврата только той части, которая была запрошена? Этот метод, вместо просмотра всей таблицы (таблиц) или индексов, остановит поиск после нахождения искомой строки.
#MySQL
👉 @database_info
👍3
MySQL: Добавляйте ключевое слово explain к запросам select
Любой, кто пользуется MySQL, в не зависимости от того, опытный он или новичок, оценит удобство и простоту этого совета. Добавив ключевое слово EXPLAIN, можно более точно указать MySQL на то, что должен сделать ваш запрос. EXPLAIN может уточнить, как будут сканироваться ваши таблицы, использоваться индексы и тому подобное.
Создайте сложный запрос SELECT с объединениями и добавьте EXPLAIN перед ним. Результат вы сможете оценить сразу же. Используйте этот трюк, чтобы сэкономить время.
#MySQL
👉 @database_info
Любой, кто пользуется MySQL, в не зависимости от того, опытный он или новичок, оценит удобство и простоту этого совета. Добавив ключевое слово EXPLAIN, можно более точно указать MySQL на то, что должен сделать ваш запрос. EXPLAIN может уточнить, как будут сканироваться ваши таблицы, использоваться индексы и тому подобное.
Создайте сложный запрос SELECT с объединениями и добавьте EXPLAIN перед ним. Результат вы сможете оценить сразу же. Используйте этот трюк, чтобы сэкономить время.
#MySQL
👉 @database_info
👍4
MySQL: Кэш запросов: оптимизируйте ваши запросы
Кэширование запросов на MySQL-серверах обычно включено. Это связано с тем, что когда дело доходит до улучшения производительности, кэширование запросов является одним из наиболее эффективных методов, доступных для движков баз данных.
Один и тот же запрос может выполняться несколько раз. И гораздо быстрее запросить готовый результат из кэша. Однако, для запроса CURDATE (текущая дата) это недоступно. Чтобы реализовать кэширование для CURDATE, просто добавьте перед запросом PHP-строку:
#MySQL
👉 @database_info
Кэширование запросов на MySQL-серверах обычно включено. Это связано с тем, что когда дело доходит до улучшения производительности, кэширование запросов является одним из наиболее эффективных методов, доступных для движков баз данных.
Один и тот же запрос может выполняться несколько раз. И гораздо быстрее запросить готовый результат из кэша. Однако, для запроса CURDATE (текущая дата) это недоступно. Чтобы реализовать кэширование для CURDATE, просто добавьте перед запросом PHP-строку:
//CURDATE не определена
$query = 'SELECT id FROM table WHERE publish_date = CURDATE()';#MySQL
👉 @database_info
🔥2
10 лучших практик написания SQL-запросов
Делимся рекомендациями по решению распространенных проблем с SQL, с которыми часто сталкиваются специалисты по работе с данными.
https://towardsdatascience.com/10-quick-sql-tips-after-writing-daily-in-sql-for-3-years-37bdba0637d0
#SQL
👉 @database_info
Делимся рекомендациями по решению распространенных проблем с SQL, с которыми часто сталкиваются специалисты по работе с данными.
https://towardsdatascience.com/10-quick-sql-tips-after-writing-daily-in-sql-for-3-years-37bdba0637d0
#SQL
👉 @database_info
Towards Data Science
10 Quick SQL Tips After Writing Daily in SQL for 3 Years | Towards Data Science
These tips address common SQL problems you will encounter as a data professional
👍4
MySQL: Перечисления enums и установка sql_mode в значение traditional
Тип данных ENUMS может в вести в заблуждение, потому что он может принимать несколько значений, а это легко ведет к ошибкам. Объект ENUMS может быть равен определенному значению, значению NULL, а также может интерпретироваться, как пустая строка.
Конечно, вы получите предупреждение, если что-то неверно. К счастью это легко устраняется. Установите параметр mysql_mode в значение TRADITIONAL. Вуаля!
Чтобы изменить режим SQL (SQL Mode), используйте следующий код:
#MySQL
👉 @database_info
Тип данных ENUMS может в вести в заблуждение, потому что он может принимать несколько значений, а это легко ведет к ошибкам. Объект ENUMS может быть равен определенному значению, значению NULL, а также может интерпретироваться, как пустая строка.
Конечно, вы получите предупреждение, если что-то неверно. К счастью это легко устраняется. Установите параметр mysql_mode в значение TRADITIONAL. Вуаля!
Чтобы изменить режим SQL (SQL Mode), используйте следующий код:
//Запуск mysqld в режиме
$--sql-mode=”modes”
//или
$sql-mode=”modes” (my.ini для Windows / my.cnf для Unix)
//Изменение во время выполнения, несколько режимов разделяются запятой
$set [GLOBAL|SESSION] sql_mode='modes'
//TRADITIONAL эквивалентно следующим режимам:
STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE,
ERROR_FOR_DIVISION_BY_ZERO и NO_AUTO_CREATE_USER#MySQL
👉 @database_info
👍2
MySQL: Выявите медленные запросы
То, что MySQL по умолчанию не отслеживает и не протоколирует медленные запросы, не значит, что вы не можете сделать это сами. MySQL имеет много функций, которые по умолчанию не включены, но могут быть очень полезны. Чтобы разрешить функцию slow-query-log отредактируйте конфигурационный файл my.cnf и затем запустите следующие команды, находясь в mysqld:
Строка 1 означает, что любой запрос, длящийся более 1 секунды, будет занесен в лог. По умолчанию, параметр установлен в «0». После внесения данного изменения, сервер необходимо перезапустить, чтобы изменения вступили в силу.
Теперь, когда вы имеете возможность выявлять «долгие» запросы, используйте команду EXPLAIN, которая была обсуждена ранее, чтобы выяснить, почему это происходит.
#MySQL
👉 @database_info
То, что MySQL по умолчанию не отслеживает и не протоколирует медленные запросы, не значит, что вы не можете сделать это сами. MySQL имеет много функций, которые по умолчанию не включены, но могут быть очень полезны. Чтобы разрешить функцию slow-query-log отредактируйте конфигурационный файл my.cnf и затем запустите следующие команды, находясь в mysqld:
$long_query_time = 1
$log-slow-queries = /var/log/mysql/mysql-slow-query.logСтрока 1 означает, что любой запрос, длящийся более 1 секунды, будет занесен в лог. По умолчанию, параметр установлен в «0». После внесения данного изменения, сервер необходимо перезапустить, чтобы изменения вступили в силу.
Теперь, когда вы имеете возможность выявлять «долгие» запросы, используйте команду EXPLAIN, которая была обсуждена ранее, чтобы выяснить, почему это происходит.
#MySQL
👉 @database_info
👍4
Как настроить и запустить систему отслеживания измененных данных PostgreSQL
PostgreSQL предлагает метод логического декодирования и делает возможным сбор данных об изменениях на основе логирования. Вы сможете настроить и запустить CDC в несколько шагов.
Архитектура современных веб-приложений состоит из нескольких программных компонентов, таких как информационные панели (дашборды), аналитические системы, базы данных, озёра данных (Data Lakes), кэшевые хранилища, функции поиска и т.д.
Статья rus
Статья eng
#PostgreSQL
👉 @database_info
PostgreSQL предлагает метод логического декодирования и делает возможным сбор данных об изменениях на основе логирования. Вы сможете настроить и запустить CDC в несколько шагов.
Архитектура современных веб-приложений состоит из нескольких программных компонентов, таких как информационные панели (дашборды), аналитические системы, базы данных, озёра данных (Data Lakes), кэшевые хранилища, функции поиска и т.д.
Статья rus
Статья eng
#PostgreSQL
👉 @database_info
👍6
Как работает реляционная БД
Статья старая но для понимания принципов работы это не мешает.
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг. Далее
👉 @database_info
Статья старая но для понимания принципов работы это не мешает.
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг. Далее
👉 @database_info
Хабр
Как работает реляционная БД
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих...
👍7👏1
Слышали о том, что анализ данных — востребованная сфера? Давайте разберёмся в профессии аналитика данных вместе.
Собрали всю базовую информацию о специальности в бесплатном гайде. За 10 минут чтения вы поймёте:
— какие задачи решает аналитик;
— кто такие и чем отличаются друг от друга джун, мидл и синьор;
— какие навыки и знания нужны для старта в профессии;
— как можно освоить профессию;
— как и куда расти джуну.
А ещё мы собрали полезные ссылки для начинающих аналитиков: где читать новости и узнавать новое.
Чтобы получить гайд, переходите по ссылке.
Собрали всю базовую информацию о специальности в бесплатном гайде. За 10 минут чтения вы поймёте:
— какие задачи решает аналитик;
— кто такие и чем отличаются друг от друга джун, мидл и синьор;
— какие навыки и знания нужны для старта в профессии;
— как можно освоить профессию;
— как и куда расти джуну.
А ещё мы собрали полезные ссылки для начинающих аналитиков: где читать новости и узнавать новое.
Чтобы получить гайд, переходите по ссылке.
👍2
SQLite: Основные операции с данными. Добавление данных. Команда INSERT
Для добавления данных в SQLite применяется команда INSERT, которая имеет следующее формальное определение.
#SQLite
👉 @database_info
Для добавления данных в SQLite применяется команда INSERT, которая имеет следующее формальное определение.
#SQLite
👉 @database_info
👍2
Как работать с ограничениями в sql
Разрабатывая БД SQL, вы можете определять, какие данные можно добавлять в определенные столбцы таблицы, а какие – нет. Это возможно благодаря ограничениям. Если вы применили ограничение к столбцу или таблице, любые попытки добавить в них данные, которые не соответствуют этому правилу, завершатся неудачно.
Различные реализации SQL имеют свои уникальные способы работы с ограничениями. В данном руководстве мы разберем популярный синтаксис, который используют многие СУБД для управления ограничениями. Далее
#mysql
👉 @database_info
Разрабатывая БД SQL, вы можете определять, какие данные можно добавлять в определенные столбцы таблицы, а какие – нет. Это возможно благодаря ограничениям. Если вы применили ограничение к столбцу или таблице, любые попытки добавить в них данные, которые не соответствуют этому правилу, завершатся неудачно.
Различные реализации SQL имеют свои уникальные способы работы с ограничениями. В данном руководстве мы разберем популярный синтаксис, который используют многие СУБД для управления ограничениями. Далее
#mysql
👉 @database_info
Telegraph
Как работать с ограничениями в sql
Разрабатывая БД SQL, вы можете определять, какие данные можно добавлять в определенные столбцы таблицы, а какие – нет. Это возможно благодаря ограничениям. Если вы применили ограничение к столбцу или таблице, любые попытки добавить в них данные, которые не…
👍4
Как получить размер базы данных Redis
Redis невероятно быстр, эффективен и надежен. Кроме того, это мощный инструмент, обеспечивающий механизм кэширования приложений. Это связано с тем, что он хранит данные в памяти, которая не требует обращения к диску. Однако есть один недостаток. Redis хранит данные в памяти, что может привести к серьезным проблемам с производительностью для больших наборов данных. Далее
#Redis
👉 @database_info
Redis невероятно быстр, эффективен и надежен. Кроме того, это мощный инструмент, обеспечивающий механизм кэширования приложений. Это связано с тем, что он хранит данные в памяти, которая не требует обращения к диску. Однако есть один недостаток. Redis хранит данные в памяти, что может привести к серьезным проблемам с производительностью для больших наборов данных. Далее
#Redis
👉 @database_info
👍2
Media is too big
VIEW IN TELEGRAM
🔥Разбираем SQL на примере PostgreSQL — SELECT, JOIN, GROUP, HAVING, Coalesce и др.
00:00 Зачем знать SQL и базы данных
02:47 Виды баз данных
03:28 Понятие сущностей, проектирование больших систем
06:01 Сущности в реляционных базах данных
06:50 Проектирование схемы БД магазина на бумаге
10:27 Перенос схемы БД в PostgreSQL, создание БД и таблиц
15:50 Заполняем БД данными
17:40 SELECT, получение данных из БД
19:03 JOIN, объединение таблиц
23:25 LEFT JOIN, RIGHT JOIN, INNER JOIN
26:57 Удаление данных их таблиц, обновление данных таблиц
28:23 Пример комплексного запроса с несколькими JOIN
32:31 Группировка данных GROUP BY
34:11 COALESCE
34:47 Сортировка данных, ORDER BY
35:13 HAVING
36:26 LIMIT, OFFSET
38:09 Выводы, итоги
Источник
#PostgreSQL #sql
👉 @database_info
00:00 Зачем знать SQL и базы данных
02:47 Виды баз данных
03:28 Понятие сущностей, проектирование больших систем
06:01 Сущности в реляционных базах данных
06:50 Проектирование схемы БД магазина на бумаге
10:27 Перенос схемы БД в PostgreSQL, создание БД и таблиц
15:50 Заполняем БД данными
17:40 SELECT, получение данных из БД
19:03 JOIN, объединение таблиц
23:25 LEFT JOIN, RIGHT JOIN, INNER JOIN
26:57 Удаление данных их таблиц, обновление данных таблиц
28:23 Пример комплексного запроса с несколькими JOIN
32:31 Группировка данных GROUP BY
34:11 COALESCE
34:47 Сортировка данных, ORDER BY
35:13 HAVING
36:26 LIMIT, OFFSET
38:09 Выводы, итоги
Источник
#PostgreSQL #sql
👉 @database_info
👍9
Выбирайте сервис DBaaS и вы получите:
• готовую базу данных необходимой конфигурации;
• помощь в миграции с любой ИТ-инфраструктуры;
• безопасность данных: БД разворачиваются внутри защищенного периметра;
• экспертизу и поддержку сертифицированных специалистов.
Решайте конкретные задачи бизнеса, а не занимайтесь настройкой и обслуживанием баз данных!
Оформите бесплатный тестовый доступ на нашем сайте.
Приглашаем к сотрудничеству в рамках партнерской программы.
📞 Тел: +74957894135
🌏 Сайт: https://nubes.ru/
• готовую базу данных необходимой конфигурации;
• помощь в миграции с любой ИТ-инфраструктуры;
• безопасность данных: БД разворачиваются внутри защищенного периметра;
• экспертизу и поддержку сертифицированных специалистов.
Решайте конкретные задачи бизнеса, а не занимайтесь настройкой и обслуживанием баз данных!
Оформите бесплатный тестовый доступ на нашем сайте.
Приглашаем к сотрудничеству в рамках партнерской программы.
📞 Тел: +74957894135
🌏 Сайт: https://nubes.ru/
Разница между VARCHAR и TEXT в MySQL
MySQL имеет много типов данных для хранения строковых данных в таблице. VARCHAR и TEXT — два из них. Оба могут хранить максимум 65535 символов, но между этими типами данных, описанными в этом руководстве, есть некоторые различия.
#mysql
👉 @database_info
MySQL имеет много типов данных для хранения строковых данных в таблице. VARCHAR и TEXT — два из них. Оба могут хранить максимум 65535 символов, но между этими типами данных, описанными в этом руководстве, есть некоторые различия.
#mysql
👉 @database_info
👍3
Узнать размер базы данных через консоль mysql
Существует куча различных инструментов с графическим интерфейсом для управления и обслуживания баз данных (mysqladmin, navicat и прочие), плюс возможности панелей управления сервером, где можно получить информацию о базах данных, таблицах, пользователях. Однако иногда, при работе в консоли сервера через ssh, нужно по быстрому получить размеры существующих баз данных mysql. Для этого достаточно зайти в консольный клиент mysql и выполнить sql запрос.
root@localhost:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43764664
Server version: 5.5.46-0+deb7u1 (Debian)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
В данном случае мы вошли из под рута. Выполняем запрос:
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "database size in MB" FROM information_schema.TABLES GROUP BY table_schema;
+--------------------+---------------------+
| database_name | database size in MB |
+--------------------+---------------------+
| database1 | 21.73606873 |
| database2 | 0.79687500 |
| information_schema | 0.00878906 |
| mysql | 0.68143845 |
| roundcube | 0.40625000 |
+--------------------+---------------------+
7 rows in set (0.14 sec)
Во второй колонке видим размер каждой базы данных. Что-бы узнать размер какой-то конкретной базы данных, чуть модифицируем sql запрос и получаем:
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "database size in MB" FROM information_schema.TABLES WHERE table_schema="festivalse";
+---------------+---------------------+
| database_name | database size in MB |
+---------------+---------------------+
| database1 | 21.73606873 |
+---------------+---------------------+
1 row in set (0.01 sec)
#mysql
👉 @database_info
Существует куча различных инструментов с графическим интерфейсом для управления и обслуживания баз данных (mysqladmin, navicat и прочие), плюс возможности панелей управления сервером, где можно получить информацию о базах данных, таблицах, пользователях. Однако иногда, при работе в консоли сервера через ssh, нужно по быстрому получить размеры существующих баз данных mysql. Для этого достаточно зайти в консольный клиент mysql и выполнить sql запрос.
root@localhost:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43764664
Server version: 5.5.46-0+deb7u1 (Debian)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
В данном случае мы вошли из под рута. Выполняем запрос:
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "database size in MB" FROM information_schema.TABLES GROUP BY table_schema;
+--------------------+---------------------+
| database_name | database size in MB |
+--------------------+---------------------+
| database1 | 21.73606873 |
| database2 | 0.79687500 |
| information_schema | 0.00878906 |
| mysql | 0.68143845 |
| roundcube | 0.40625000 |
+--------------------+---------------------+
7 rows in set (0.14 sec)
Во второй колонке видим размер каждой базы данных. Что-бы узнать размер какой-то конкретной базы данных, чуть модифицируем sql запрос и получаем:
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "database size in MB" FROM information_schema.TABLES WHERE table_schema="festivalse";
+---------------+---------------------+
| database_name | database size in MB |
+---------------+---------------------+
| database1 | 21.73606873 |
+---------------+---------------------+
1 row in set (0.01 sec)
#mysql
👉 @database_info
👍2
Как оператор GROUP BY обрабатывает поля с NULL?
Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:
name score
Alex 5
Sam 1
Sam 11
NULL 4
NULL 3
Тогда запрос
выдаст:
name sc
Alex 5
Sam 12
NULL 7
#sql
👉 @database_info
Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:
name score
Alex 5
Sam 1
Sam 11
NULL 4
NULL 3
Тогда запрос
SELECT name, SUM (score) AS sc
FROM table
GROUP BY name; выдаст:
name sc
Alex 5
Sam 12
NULL 7
#sql
👉 @database_info
👍7