Заметки разработчика
473 subscribers
667 photos
4 videos
1.16K links
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов.

https://www.dev-notes.ru

@snakenf
Download Telegram
#mysql #db #database

Как снизить производительность запросов MySQL в 10 000 раз

Прочтите это медленно:
При запросе индексированного строкового столбца с использованием целочисленного значения ваш индекс не будет использоваться.

@dev_notes_ru
👍6
#MySQL #features #DB #DataBase

MySQL 9.0 Community Edition: Ключевые возможности и улучшения

Ознакомьтесь с новыми возможностями и улучшениями в MySQL 9.0 Community Edition, вышедшем 1 июля 2024 года. Обзор охватывает обновления типов данных, производительности и новых возможностей, ориентированных на современные приложения.

1 июля 2024 года вышла MySQL 9.0 Community Edition, названная "Инновационным релизом". Новая версия обещает повышенную производительность, гибкость и новые возможности, призванные удовлетворить динамичные потребности современных приложений. Но оправдает ли она надежды, особенно после бурного приёма MySQL 8.0? Давайте посмотрим, что может предложить MySQL 9.0.

📄 Читать статью

@dev_notes_ru
👍1
#laravel #db #database #mysql #backend

Разделение хостов баз данных для оптимизации в Laravel

На сайтах с высокой посещаемостью, например, в электронной коммерции или социальных сетях, где одновременно выполняется множество операций чтения и записи, база данных будет узким местом.

Например, в MySQL производительность чтения может пострадать при одновременном выполнении операций записи, поскольку операции записи могут получить блокировки, которые могут задержать операции чтения, особенно если база данных интенсивно используется и количество одновременных операций велико.

Кроме того, в большинстве случаев дисковый ввод/вывод распределяется между операциями чтения и записи. Большие объёмы записи могут привести к задержке ввода/вывода, замедляя операции чтения.

📄 Читать статью

@dev_notes_ru
👍3
#database #mysql #replication #backend

Как настроить MySQL репликацию Master-Slave

В облачных вычислениях репликация данных "master-slave" означает хранение одной и той же информации на нескольких серверах. Один сервер управляет группой, а другие устройства выполняют работу в пределах одного узла.

Репликация позволяет создавать регулярные ежедневные резервные копии, которые могут восстановить главную базу данных MySQL в случае сбоя в работе хранилища. Это также позволяет одновременно обрабатывать данные, не перегружая master сервер.

📄 Читать статью

@dev_notes_ru
👍2🔥1
#database #replication #backend

Типы репликации баз данных

Репликация базы данных — это как создание копий важных документов, чтобы иметь резервные копии на случай, если с оригиналом что-то случится. Существуют различные способы создания таких копий, например, одна основная копия (master), которая обновляется, а затем создаются копии (slave) этой обновлённой версии. Другой способ — иметь несколько основных копий (master), обновляемых и совместно использующих эти обновления. Далее рассмотрим различные типы репликации баз данных.

📄 Читать статью

@dev_notes_ru
👍3
#laravel #tips #mysql #mariadb #database #db

Совет по Laravel💡: Невидимые столбцы

Если вы используете MySQL/MariaDB в качестве базы данных, вы можете использовать невидимые столбцы. Эти столбцы остаются скрытыми в операторах SELECT *, что идеально подходит для работы с конфиденциальной информацией и предварительно вычисленными столбцами 🚀.

@dev_notes_ru
👍3😱2
💡 Совет по Laravel: Отключите события модели при засеве базы данных

В большинстве случаев при засеве базы данных не нужно вызывать события модели. Можно использовать трейт WithoutModelEvents, чтобы отключить эти события, что сделает ваши seeder'ы немного быстрее 🚀.

📱 @dev_notes_ru

#laravel #database #seeding #seeder
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#MySQL #GroupBy #DB #DataBase

👩‍💻 MySQL GROUP BY

Оператор GROUP BY в MySQL является одним из самых мощных инструментов агрегирования данных в SQL. Он позволяет группировать строки, имеющие общее значение поля, и выполнять для этих групп такие агрегатные функции, как SUM(), COUNT(), AVG(), MAX() и MIN(). Несмотря на свою простоту, GROUP BY может вызвать затруднения у новичков в SQL и даже у опытных разработчиков из-за различных нюансов и потенциальных подводных камней. Мы рассмотрим GROUP BY в MySQL, предоставим исчерпывающее объяснение, многочисленные примеры, типичные ошибки и лучшие практики, чтобы убедиться, что вы используете его эффективно.

🖥 Читать статью

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
👩‍💻 Что бы я хотел знать о Postgres, когда начал его изучать

Я профессионально работаю над веб-приложениями уже более десяти лет, и за это время пришлось научиться использовать множество различных систем и инструментов. В процессе обучения я обнаружил, что официальная документация, как правило, оказывается наиболее полезной.

За исключением… Postgres. Дело не в том, что официальная документация не является выдающейся (она такая и есть!) — она просто огромна. Для текущей версии (17 на момент написания статьи), если распечатать её в виде стандартного PDF на бумаге формата A4, она занимает 3,024 страницы. Это не то, что может просто сесть и прочитать от начала до конца любой начинающий инженер.

Поэтому я хочу попытаться собрать воедино те моменты, которые мне хотелось бы, чтобы кто-то просто рассказал перед началом работы с базой данных Postgres. Надеюсь, это облегчит жизнь следующему человеку, отправляющемуся в путешествие, подобное моему.

Обратите внимание, что многие из этих вещей могут быть применимы и к другим системам управления базами данных (СУБД) SQL или к другим базам данных в целом. Но я не так хорошо с ними знаком, поэтому не уверен, что к ним относится, а что нет.

🖥 Читать статью

📱 @dev_notes_ru

#DataBase #Postgres #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
💡 Руководство по типам данных SQLite

Большинство баз данных имеют определённые типы данных, но SQLite значительно отличается от других систем баз данных. В статье рассказывается о динамической системе типов SQLite и различных типах данных для тех, кто только начинает работать с SQLite.

SQLite — популярная, лёгкая система баз данных, хранящая данные в одном файле. Её простоте способствует гибкая, динамическая система типов, отличающаяся от статических, жёстких типов, используемых в других системах баз данных, таких как MySQL, PostgreSQL или SQL Server, требующих указания типов данных при создании таблиц.

🖥 Читать статью

📱 @dev_notes_ru

#DataBase #SQLite #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🚀 Оптимизация SQL запросов

В SQL-запросе операторы выполняются в следующем порядке:

1. FROM / JOIN
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. DISTINCT
7. ORDER BY
8. LIMIT / OFFET

Приемы, применяемые на каждом этапе, помогают ускорить выполнение следующих шагов. Поэтому важно знать порядок их выполнения. Чтобы добиться максимальной эффективности, сосредоточьтесь на оптимизации шагов, расположенных на более ранних этапах запроса.

С учётом этого рассмотрим некоторые советы по оптимизации:

Максимизируйте выражение `WHERE`.

Это выражение выполняется раньше, поэтому оно предоставляет хорошую возможность уменьшить размер набора данных до того, как будет обработана остальная часть запроса.

Фильтруйте строки перед `JOIN`

Хотя запрос FROM/JOIN выполняется первым, всё равно можно ограничить количество строк. Чтобы ограничить количество присоединяемых строк, используйте подзапрос в операторе FROM вместо таблицы.

Используйте `WHERE` вместо `HAVING`

Выражение HAVING выполняется после WHERE и GROUP BY. Это означает, что при возможности стоит перенести все необходимые условия в выражение WHERE.

Не путайте `LIMIT`, `OFFSET` и `DISTINCT` с методами оптимизации

Легко предположить, что они повышают производительность за счет минимизации набора данных, но это не так. Поскольку они выполняются в конце запроса, они практически не влияют на его производительность.

🖥 Порядок выполнения CQL запроса

📱 @dev_notes_ru

#SQL #DataBase #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Агрегатные функции SQL

В статье мы рассмотрим наиболее часто используемые агрегатные функции SQL, их синтаксис, практические примеры и способы оптимального использования в запросах.

🖥 Читать статью

📱 @dev_notes_ru

#DataBase #SQL
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
👩‍💻 👩‍💻 Генерируемые столбцы и SQL-представления: использование в Laravel

Знакомо чувство, когда сложный отчёт в админке загружается по 10 секунд, а пагинация с вычисляемыми полями ломается?

Часто проблема не в коде, а в подходе: мы пытаемся в PHP делать то, что СУБД выполнит в сотни раз быстрее. В новой статье разбираем, как заставить базу данных работать на полную:

Генерируемые столбцы: когда они заменяют аксессоры и как с их помощью индексировать вычисляемые поля.
SQL-представления: как создавать виртуальные таблицы для сложных отчётов и избегать дублирования кода.
Практические кейсы: ускорение сортировки по марже прибыли и создание ежедневных отчётов без таймаутов.

Всё — с кодом, миграциями и замером производительности. Переносим логику из PHP в SQL и получаем прирост скорости в 5–10 раз. 🚀

🖥 Читать статью

📱 @dev_notes_ru

#Laravel #MySQL #PHP #Database
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2