Pull to refresh
0
0

laravel

Send message

Почему стоит обратить внимание на PlanetScale

Reading time3 min
Views1.4K

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

Если ваши данные неструктурированы или недостаточно хорошо структурированы, то преимущество варианта NOSQL очевидно, но если вы работаете со структурированными данными и/или будете выполнять много запросов, то вам лучше использовать SQL для обеспечения производительности, надежности и, возможно, соответствия нормативным требованиям.

Читать далее
Total votes 8: ↑5 and ↓3+3
Comments1

Не все типы репликации одинаково полезны, или почему две MySQL лучше одной

Reading time5 min
Views6.5K

В это сложно поверить, но MySQL как продукт появился еще в 1995 году. Со временем название СУБД стало таким же нарицательным, как Xerox. Сегодня под этим термином могут понимать самые разные связки: от MySQL Native от компании Oracle до Percona XtraDB Cluster, а ведь есть еще MariaDB, Galera, Percona Server.

О том, как устроено генеалогическое древо MySQL можно снимать сериал с драконами, поэтому в материале мы сконцентрируемся на особенностях и ограничениях работы СУБД с разным типом репликации: MySQL sync и MySQL Semi-sync.
Читать дальше →
Total votes 35: ↑32 and ↓3+42
Comments4

Магия оптимизации SQL запросов

Reading time7 min
Views61K

Даже самый простой SQL запрос можно выполнить по-разному. Но из всех вариантов СУБД нужно выбрать оптимальный, как же это сделать? Неужели придётся перебрать все возможные варианты? Давайте разбираться.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments19

Книга «MySQL по максимуму. 4-е издание»

Reading time8 min
Views6.1K
image Привет, Хаброжители!

Хотите выжать из MySQL максимум возможностей? Вам поможет уникальная книга, написанная экспертами для экспертов.

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

Это издание было обновлено и переработано с учетом последних достижений в области облачного и самостоятельного хостинга MySQL, производительности InnoDB, а также новых функций и инструментов. Вы сможете разработать платформу реляционных данных, которая будет масштабироваться вместе с вашим бизнесом, и узнаете о передовых методах обеспечения безопасности, производительности и стабильности баз данных.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

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

Level of difficultyMedium
Reading time8 min
Views5.9K

Point in Time Recovery (PiTR) — это восстановление базы данных на какой‑то конкретный момент времени (с точностью до секунд или до конкретной транзакции).

PiTR невероятно полезен для восстановления базы данных после того, как «случилось непоправимое». Если достаточно точно выбрать точку на которую восстанавливать базу, то можно восстановить базу данных практически без потери данных.

В этой статье мы рассмотрим классический PiTR и еще два способа путешествовать во времени быстрее, и уменьшить количество операций, которые надо выполнять руками.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments2

Фильтрация объектов по координатам (широте и долготе)

Level of difficultyMedium
Reading time4 min
Views2.3K

В настоящее время часто встречается задача - на карте расположено множество точек  и необходимо выделить их подмножество (отфильтровать) по критерию расстояния  от некоторой “особой” точки. В качестве примеров укажем сайты маркетплейсов, где точки пункты выдачи, в сетевых компаниях это офисы на карте, логистические компании отслеживают передвижение транспортных средств, операторы такси находят на карте ближайшие автомобили и можно перечислить еще много областей применения. При кажущейся простоте постановки задачи её решение требует значительных ресурсов, так как запросы к базе данных, как правило, очень тяжелые. Здесь на примере задачи ‘Пункты выдачи’ с фильтрацией по расстоянию (радиусу) от накопительного узла товаров показывается как можно сократить количество обработанных строк в запросе. Реализация задачи на БД mySQL.

Координаты исходной точки могут быть получены несколькими способами, первый если устройство пользователя оборудовано GPS и пользователь разрешил передачу своих координат, то мы получаем координаты пользователя без затруднений, второй способ менее точный мы получаем координаты пользователя из его IP, для этого используется библиотека maxmind.

В БД mySQL 5.7 появилась встроенная функция ST_Distance_Sphere для расчета (евклидово) расстояния между двумя точками. Данная функция принимает широту и долготу двух точек, а возвращает расстояние между ними в метрах, далее мы производим сравнение с критической величиной радиуса и определяем попадает ли данная точка в круг  с этим радиусом.

Читать далее
Total votes 5: ↑4 and ↓1+4
Comments13

Как оптимизировать медленные SQL запросы?

Reading time18 min
Views28K

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

Как выявить и отладить такие проблемы? В этой статье будет показано решение наиболее распространённых проблем с производительностью БД, вызванных неправильной индексацией. Примеры будут приведены для Postgres, MySQL и SQLite.

Читать далее
Total votes 16: ↑8 and ↓8+3
Comments38

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

Level of difficultyMedium
Reading time14 min
Views23K

Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью. 

Статья написана на основе доклада с PHP Russia 2022.

Читать далее
Total votes 54: ↑54 and ↓0+54
Comments13

6 простых принципов написания приложения на Vue, которое легко поддерживать (часть 1)

Reading time8 min
Views23K

Привет! Меня зовут Наташа Калачева. Я Frontend-разработчик в компании AGIMA. Vue — один из самых популярных фреймворков JS, его используют для разработки SPA и PWA. А его главные плюсы — это понятная, четкая документация, готовая структура и низкий порог входа.

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

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

Следуя этим рекомендациям, вы сможете создавать более эффективные проекты.

Читать далее
Total votes 47: ↑42 and ↓5+40
Comments70

Взаимодействие между процессами на С++ и PHP. Сокеты, семафоры и разделяемая память

Level of difficultyMedium
Reading time9 min
Views6.6K

Доброго всем дня!

Хочу рассказать о своём практическом опыте реализации взаимодействия между процессами в среде Linux в условиях, когда вычислительных ресурсов существенно не хватает. По условию, один из процессов написан на C++, второй на PHP, потому дополнительно мы рассмотрим доступность соответствующих API из PHP а также варианты действий в случае, когда для нужного API PHP-обёртка отсутствует.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments23

PHPStorm + XDebug + Docker

Reading time3 min
Views28K

Ещё одна статья на избитую тему? Да! Потому что за два часа поиска не нашёл ни одной, по которой можно было пройтись от и до и получить работающее окружение.

Шагов, на самом деле, немного, все очень простые, нужно лишь...

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments10

Двухуровневый CI-процесс PHP-проекта

Reading time5 min
Views4.1K

Непрерывная интеграция (CI, англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Целей у непрерывной интеграции две:

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments9

Итоги третьего ежегодного опроса PHP-сообщества (и по традиции — слон)

Reading time7 min
Views7.7K

Привет! В декабре вновь прошел опрос русскоязычного PHP-сообщества. Помогали составлять его и распространять ребята, которые развивают городские и региональные PHP-комьюнити, а также руководят каналами и подкастами про PHP.

Удалось собрать 1215 ответов. Расспросили сообщество, на какой версии PHP сидят в командах, какой фреймворк выбирают для рабочих, а какой для личных проектов, многие ли посматривают на Go. И не только.

- Итоги 2021

- Итоги 2020

Читать далее
Total votes 43: ↑43 and ↓0+43
Comments3

Минималистичный YouTube. Расширения для браузера и альтернативные клиенты

Level of difficultyEasy
Reading time7 min
Views56K

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

Один из главных «нарушителей» — YouTube. Стоило один раз посмотреть пляжный волейбол на Олимпийских играх — и он уже несколько лет показывает женщин в купальниках на главной странице (пример). Даже неудобно открывать YouTube в присутствии сына…

Непрошеные и неуместные рекомендации видео — общая проблема, на которую часто жалуются. К счастью, их легко заблокировать, как и весь остальной мусор. Можно ходить на серверы YouTube через кастомный фронтенд, через сторонние клиенты или вообще из консоли. Некоторые альтернативные способы просмотра особенно актуальны в свете потенциальной блокировки YouTube на территории РФ.
Читать дальше →
Total votes 109: ↑106 and ↓3+127
Comments80

Спик инглиш, парле франсэ, шпрехен зи дойч, 说中文: дайджест для тех, кто идёт до конца

Level of difficultyEasy
Reading time7 min
Views10K

Этот дайджест я планировала выпустить в пятницу. В попытках сделать заголовок чуть интереснее, я забила в переводчик «говорить по-китайски», он мне выдал 说中文. По привычке проверила перевод в обе стороны, вроде всё адекватно. «А вдруг не так и китаисты с Хабра меня поправят?», — подумала я и полезла за фактчекингом, в ходе которого выяснила, что есть 汉语 — китайский устный и 中文 — китайский письменный, но 汉语 мало используется в повседневной речи и больше в академической среде, а ещё есть ультрапросторечной 中国话. И вообще версия 中文 выжила другие, потому что в официальных документах и буклетах китайский язык обозначается именно так. Далее я погрузилась в чтение статей про иероглифы, символику баланса и центра мира, многонациональный Китай… Короче, глубокая ночь воскресенья, я доделываю дайджест и думаю, что нужно почитать про остальные иероглифы. 

Иногда поражаешься, какие триггеры срабатывают и превращают зубрёжку неправильных глаголов в удовольствие! Когда-то именно чтение книги о французских колониях (государствах Магриба) дало мне наибольший толчок в изучении французского языка: почему-то загадочный мир Северной Африки в звучании парижской речи показался мне даже более привлекательным, чем традиционно манкие Лувр, Версаль, Канны, порт Бордо и Марсель. А ведь на тот момент мне казалось, что я ненавижу все эти глаголы, грависы и проч. 

А вообще, меня давно тревожит мысль: а знаю ли я язык достаточно хорошо? А насколько хорошо знают остальные? А почему один знакомый говорит как native speaker, а второй из его же группы — «иняз финишд»? Делитесь историями и достижениями, а я расскажу, что меня вдохновило в 37 лет сесть за учебники и начать качать французский с твёрдой целью дойти до устойчивого финиша.

Читать далее
Total votes 18: ↑17 and ↓1+26
Comments43

Как мы интегрировали и настроили для работы Conventional Commits в PHPStorm

Reading time3 min
Views3K

Поднялся вопрос стандартизации коммитов в команде. До этого были такие правила, мы пишем номер задачи и через тире описание того, что было сделано кратко. Номер задачи берется из номера issue. Например: #1 - реализован функционал сборки прода. Но, это надоело и стало как-то неудобно, когда у нас есть четкое деление задач на фиксы, фичи и так далее.

Нашли Conventional Commits и попробовали его на тестовом репозитории, понравилось. Решили внедрить это в команду, но столкнулись с тем, что люди не всегда делают коммиты правильно, а значит нужна какая-то валидация.

В нашей команде принято по максимуму IDE и его возможности. То есть, коммиты мы делаем не через консоль, а через встроенные утилиты. Поэтому, сразу пошли искать плагины, которые есть в PHPStorm и нашли вот эти 2 важных плагина: Conventional Commit и Git Commit Template. После их установки видим новые кнопки в окне коммита:

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments9

Разбираемся с Redis

Reading time19 min
Views243K

Этот материал представляет собой глубокое исследование всего, что связано с Redis. В частности — речь пойдёт о различных способах организации хранилищ Redis, о постоянном хранении данных, о форках процессов.

Читать далее
Total votes 46: ↑45 and ↓1+62
Comments7

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views114K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →
Total votes 111: ↑96 and ↓15+81
Comments102

Уровни изоляции транзакций с примерами на PostgreSQL

Reading time8 min
Views243K

Вступление


В стандарте SQL описывается четыре уровня изоляции транзакций — Read uncommited (Чтение незафиксированных данных), Read committed (Чтение зафиксированных данных), Repeatable read (Повторяемое чтение) и Serializable (Сериализуемость). В данной статье будет рассмотрен жизненный цикл четырёх параллельно выполняющихся транзакций с уровнями изоляции Read committed и Serializable.


Для уровня изоляции Read committed допустимы следующие особые условия чтения данных:


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


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


Что же касается Serializable, то данный уровень изоляции самый строгий, и не имеет феноменов чтения данных.

Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments17

8 сервисов для зарубежных покупок в 2024 году

Reading time6 min
Views220K

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

Прочитав кучу отзывов (спойлер: в основном плохих), я попробовала заказать товары через так называемые “Сервисы-посредники” или “Байер-сервисы”. В статье расскажу об опыте работы с 8 сервисами, с помощью которых можно привести товары в Россию.

Читать далее
Total votes 40: ↑37 and ↓3+43
Comments51
1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity