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
Media is too big
VIEW IN TELEGRAM
Теория баз данных для программиста - только самое необходимое
В этом видео мы поговорим про теорию баз данных и нормализацию данных. Здесь нет глубоких вещей, только самое необходимое, чтобы мы начали изучать SQL и в процессе знакомства с SQL уже погружались в более детальные вещи.
00:00 - Введение
01:40 - Делаем телефонный справочник
07:34 - Оптимизирует повторяющиеся слова
09:56 - Разделение строки на колонки
11:37 - Выносить пол в отдельную колонку
16:10 - О важности связей
19:14 - Установка MySQL
20:36 - Устанавливаем и запускаем MySQL в Ubuntu
23:54 - Работаем с MySQL из VS Code
#sql
👉 @database_info
В этом видео мы поговорим про теорию баз данных и нормализацию данных. Здесь нет глубоких вещей, только самое необходимое, чтобы мы начали изучать SQL и в процессе знакомства с SQL уже погружались в более детальные вещи.
00:00 - Введение
01:40 - Делаем телефонный справочник
07:34 - Оптимизирует повторяющиеся слова
09:56 - Разделение строки на колонки
11:37 - Выносить пол в отдельную колонку
16:10 - О важности связей
19:14 - Установка MySQL
20:36 - Устанавливаем и запускаем MySQL в Ubuntu
23:54 - Работаем с MySQL из VS Code
#sql
👉 @database_info
👍7
Основные SQL-команды и запросы с примерами, которые должен знать каждый разработчик
В небольшом обзоре разберем наиболее важные команды языка запросов SQL и сделаем шаг в сторону грамотного изучения работы с базами данных.
#sql
👉 @database_info
В небольшом обзоре разберем наиболее важные команды языка запросов SQL и сделаем шаг в сторону грамотного изучения работы с базами данных.
#sql
👉 @database_info
👍6👎1
Forwarded from GitHub Сообщество
Immudb – самая быстрая в мире неизменная база данных, построенная на модели нулевого доверия
Immudb - это база данных со встроенной криптографической проверкой. Она отслеживает изменения в конфиденциальных данных, и целостность истории будет защищена клиентами без необходимости доверять самой базе. Она может работать как хранилище ключей и значений, так и/или как реляционная база данных (SQL).
#GitHub | #SQL #Data
👉 @Githublib
Immudb - это база данных со встроенной криптографической проверкой. Она отслеживает изменения в конфиденциальных данных, и целостность истории будет защищена клиентами без необходимости доверять самой базе. Она может работать как хранилище ключей и значений, так и/или как реляционная база данных (SQL).
#GitHub | #SQL #Data
👉 @Githublib
👍3
Как оптимизировать работу с MongoDB и ускорить запросы | Большая коллекция - 900К записей
Как удалить повторяющиеся записи в MongoDB за пару минут
#MongoDB
👉 @database_info
Как удалить повторяющиеся записи в MongoDB за пару минут
#MongoDB
👉 @database_info
👍1💩1