Обновить
9.12

MySQL *

Свободная реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

Как я определял провайдера по IP

Время на прочтение4 мин
Охват и читатели21K
Постановка задачи достаточно тривиальна: нужно по IP адресу пользователя определить провайдера. Эти данные далее должны использоваться в своей системе аналитики, а также должна быть возможность сверить их с данными, например Google или Ripe.
Читать дальше →

Третья космическая скорость для MS SQL Server

Время на прочтение5 мин
Охват и читатели12K


В сентябре компания DataCore представила новую линейку продуктов MaxParallel и первый продукт из серии — MaxParallel for SQL Server. MaxParallel делает простую вещь – ускоряет работу базы данных MS SQL, не требуя для этого никаких изменений самой базы (ее оптимизации и тп.) или аппаратной части (увеличения числа процессоров, памяти и тп.).

В чем идея: практически все современные сервер БД являются многоядерными, и приложения с успехом используют эти ядра для параллелизации вычислений. Но процесс ввода-вывода остается последовательным и использует одно процессорное ядро. И если заставить планировщик ввода-вывода использовать больше процессорных ресурсов, БД будет работать быстрее. По крайней мере, сможет работать быстрее. Уникальность MaxParallel состоит не только в том, что она ускоряет БД без серьезного вмешательства, но также в том, что она устраняет «узкое место», которое по-другому не устранить.
Читать дальше →

Что нового в DataGrip 2017.3

Время на прочтение4 мин
Охват и читатели8.1K
Привет! DataGrip замыкает цепочку релизов наших IDE, хотя вы уже могли попробовать то, о чём я расскажу, в других продуктах: поддержка баз данных есть во всех наших IDE, кроме WebStorm (потому что он дешевле), CLion и AppCode (потому что не просят).

Читать дальше →

Список полезных идей для высоконагруженных сервисов

Время на прочтение5 мин
Охват и читатели19K
В этой статье я решил собрать сборную солянку из советов о том, как разрабатывать высоконагруженные сервисы, полученных практическим путем. Для каждого совета я постараюсь приводить небольшое обоснование, без подробностей (иначе статья бы получилась бы сравнима по размеру с войной и миром). Поскольку обоснований я буду приводить не очень много, не стоит воспринимать эту статью, как догму — в каждом конкретном случае приведенные здесь советы могут быть вредны. Всегда думайте своей головой перед тем, как что-то делать.

1. Думайте своей головой и проверяйте факты


Это самое важное. Для вас не должно существовать безусловных авторитетов. Если кто-либо говорит полную чушь, или говорит что-то, что противоречит вашей практике — не прислушивайтесь к таким советам, и не важно, насколько этот человек известный и уважаемый. Если вы разрабатываете большую систему, и она не будет работать хорошо, то спрашивать будут с вас и в данном случае «мы следовали лучшим мировым практикам» оправданием не является. Умение применять нужные технологии в нужном месте и делает вас ценным специалистом, а не слепое следование чьим-то советам — для этого как раз квалификации не требуется.
Читать дальше →

MySQL и партицирование

Время на прочтение3 мин
Охват и читатели15K
Прочитав статью вспомнил об одном очень специфичном заказчике и системе по сбору статистики по событиям. На дворе 21 век и я знаю о наличии ClickHouse, но вот заказчик не хочет менять БД (причина мне непонятна и не известна, религия, наверное, не позволяет), да и пусть будет так, я его несколько раз предупреждал о последствиях. Когда станет медленно совсем, осознает проблему.

Суть проблемы


Но речь не об этом.
Читать дальше →

Сравнение качества кода Firebird, MySQL и PostgreSQL

Время на прочтение19 мин
Охват и читатели34K


Сегодняшняя статья несколько необычна. Как минимум по той причине, что вместо анализа одного проекта, будем искать ошибки сразу в трёх, а также посмотрим, где найдутся наиболее интересные баги. А самое интересное — мы выясним, кто молодец и пишет самый качественный код. Итак, на повестке дня — разбор ошибок в коде проектов Firebird, MySQL и PostgreSQL.
Читать дальше →

Миграция базы данных с InnoDB на MyRocks

Время на прочтение8 мин
Охват и читатели11K


Зоджи-Ла, Индия


Привет, Хабр! Меня зовут Олег Ефимов, я работаю в Badoo в команде «Платформа», занимаюсь задачами хранения фотографий, интерфейсами сервисов и много чем ещё.


Мне часто приходится слышать, что в том, что касается серверных технологий, Badoo – довольно консервативная компания. Отчасти это так, но на самом деле мы используем много молодых языков программирования, новых инструментов и технологий. Одна из них – RocksDB, на основе которой Facebook создал MySQL storage engine – MyRocks. Пост о том, как Facebook осуществлял миграцию одной из своих баз данных с InnoDB на MyRocks, мне и захотелось для вас перевести.

Читать дальше →

Расстояние Левенштейна в MySQL и алгоритмы нечёткого поиска средствами PHP

Время на прочтение12 мин
Охват и читатели32K
Знаменитый советский и российский математик Владимир Иосифович Левенштейн (кстати, ушедший из жизни два с небольшим месяца назад) в начале второй половины прошлого века ввёл понятие дистанции редактирования, которым мы пользуемся по сей день в различных сферах — от поисковых систем до биоинформатики. В этой статье мы применим его принцип для нечёткого поиска в MySQL (поскольку MySQL на данный момент пока не предлагает встроенного решения), вычислив самый эффективный (т.е. быстрый) способ из нескольких найденных в интернете, построим алгоритм такого поиска и реализуем его на PHP.

гугл понимает нас
Читать дальше →

Руководство к созданию собственного когортного отчёта по возвратности

Время на прочтение6 мин
Охват и читатели19K

Пример когортного отчёта со значениями LTV


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


В статье будет описан относительно простой, но полезный алгоритм построения когортой таблицы, а также приведены наброски кода с Python/Pandas и SQL. Если Вам необходимо программно реализовать построение когортного отчёта или просто интересно узнать этот алгоритм — прошу под кат.

Читать дальше →

Экспорт данных в любом формате: что умеют IDE на платформе IntelliJ

Время на прочтение3 мин
Охват и читатели21K
В DataGrip, как и в других наших IDE с поддержкой баз данных, есть механизм экспорта данных. Пользователь выбирает формат экспорта из предложенных или создает его сам.

image
Читать дальше →

Поиск решения для быстрого создания интерфейсов СУБД

Время на прочтение7 мин
Охват и читатели50K

Практически каждый человек сталкивается с ведением какого-либо учета, сбором и анализом данных: от использования таблиц в экселе до работы с данными в клиент-банковском приложении. Повсеместно для такого учета используются различные системы управления базами данных (СУБД).


В статье я хотел бы рассказать о своем пути поиска такой системы.

Читать дальше →

Грамматика MySQL на ANTLR 4

Время на прочтение15 мин
Охват и читатели11K

Грамматика MySQL на ANTLR 4


Межсетевой экран уровня приложений предназначен для анализа и фильтрации трафика в отношении какого-либо приложения или класса приложений, например веб-приложений или СУБД. При его построении возникает необходимость разговаривать на языке этого приложения. Для реляционной СУБД таким языком становится диалект SQL. Предположим, что необходимо построить межсетевой экран для СУБД. В этом случае потребуется распознавать и анализировать предложения SQL для принятия решения об их соответствии заданной политике безопасности. В зависимости от решаемых задач (например, обнаружение атак типа SQL-инъекция, управление доступом, корреляция SQL- и HTTP-запросов) будет необходима та или иная глубина анализа SQL. Так или иначе, потребуется выполнять лексический, синтаксический и семантический анализ предложений SQL.

Читать дальше →

Как мы делали небольшую охранную систему на RPi. Часть 2

Время на прочтение2 мин
Охват и читатели8.9K
Здравствуйте Хабражители! В предыдущей статье я рассказывал немного про железную часть проекта охранной системы и про систему на Python, которая работает с этим железом. В этой статье я продолжаю рассказ про серверную часть.

image
Читать дальше →

Ближайшие события

Актуальные данные по телефонным кодам российских городов

Время на прочтение4 мин
Охват и читатели5.1K
Многим приложениям требуются актуальные данные о телефонных кодах российских городов. Поиск в интернете приводит к следующим печальным итогам: есть масса сомнительных ресурсов, где выложены коды городов, но их актуальность и достоверность оставляет желать лучшего, либо неизвестно. Есть онлайн-сервисы, которые предоставляют коды по конкретному городу. Этим можно было бы воспользоваться, но проделывать несколько десятков тысяч запросов вручную — удовольствие доступное не каждому.

На самом деле первоисточником этой информации является Федеральное агентство связи Россвязь, которое выкладывает информацию о текущей нумерации телефонов. Называются эти файлы так, чтобы даже поисковики, отягощенные зачатками искусственного интеллекта, не смогли выдать эту волшебную страницу по типовым поисковым фразам искателей перечня действующих телефонных кодов — «Выписка из реестра Российской системы и плана нумерации».
Читать дальше →

Памятка евангелиста PostgreSQL: экспроприируем экспроприаторов

Время на прочтение12 мин
Охват и читатели8.4K

Привет, Хабр, давно не виделись! Со времени моих предыдущих публикаций в
серии «Памятка евангелиста PostgreSQL» (1, 2, 3) прошло довольно много времени, и многое изменилось. Вышли новые релизы MySQL и PostgreSQL с интересными фичами (хотя содержимое моих статей остаётся по большей части актуальным, я старался вносить мелкие обновления там, где это требовалось). В моду вошёл ко-маркетинг (с ко-франшизингом и местами даже ко-лизингом), когда доклады о PostgreSQL звучат на конференциях, посвящённых MySQL, и наоборот. Появились даже совместные доклады, где предпринимаются попытки объективного сравнения MySQL и PostgreSQL в тех или иных плоскостях. Отгремела история с Uber, с протяжённой по времени дискуссией, в которую я тоже внёс свой скромный вклад.


В целом, диалог между двумя проектами становится более содержательным. Я всё реже слышу страшилки и мифы, о которых я рассказывал в предыдущих статьях. Однако есть один устойчивый миф, который по-прежнему раскручивается сообществом PostgreSQL. Если быть точным, раскручивается он моей любимой компанией Postgres Professional – от представителей других компаний я пока такого не слышал. Это миф о «проприетарности» MySQL. В беседах руководство Postgres Professional демонстрирует какое-то дикое незнание матчасти и своеобразное толкование терминов. А значит пришло время дорогой редакции снова взобраться на броневичок!

Читать дальше →

DataGrip 2017.2: Поддержка Redshift и Azure, несколько баз в PostgreSQL, контроль транзакций и другое

Время на прочтение5 мин
Охват и читатели4.9K
Привет! Продолжаем серию постов о новых версиях IDE от JetBrains. Поговорим о том, что нового в DataGrip 2017.2.

— Поддержка Amazon Redshift и Microsoft Azure
Несколько баз данных для одного источника PostgreSQL
— Контроль транзакций
— Вычисление выражений
— Разделены вкладки DDL и Data для таблиц
— Интеграция с инструментами восстановления для PostgreSQL и MySQL
— Улучшения, связанные с запуском запросов
— Улучшения, связанные с написанием кода
и другое…

Читать дальше →

Форма авторизации с отправкой зашифрованного пароля

Время на прочтение3 мин
Охват и читатели16K
В этой статье я решил выложить свое представление о авторизации на сайте при помощи PHP.
Конечно если авторизация происходит на SSL риски того, что пароль будет перехвачен при помощи снифера становятся ничтожными. Но все же, такой вид авторизации не везде используется. Один из видов защиты — это содержание пароля в виде хеша. Но ведь при авторизации пароль оправляется в POST запросе на сервер и существует шанс его выловить. Поразмыслив, я решил попробовать реализовать схему авторизации при которой пароль не будет отправляться на сервер в том виде в котором он есть. И даже не его MD5 хеш. В планах было что то подобное алгоритму ms-chap.
Читать дальше →

Возможности PostgreSQL для тех, кто перешел с MySQL

Время на прочтение9 мин
Охват и читатели53K

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


Мы рады сообщить, что подготовка к PG Day'17 Russia идет полным ходом! Мы опубликовали полное расписание предстоящего мероприятия. Приглашаем всех желающих прийти и похоливарить с Антоном лично



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


Почему вообще возникла идея такого доклада? Дело в том, что PostgreSQL сейчас явно хайповая технология, и многие переходят на эту СУБД. Иногда — по объективным причинам, иногда — просто потому что это модно.


Но сплошь и рядом складывается такая ситуация, когда какой-нибудь условный программист Вася вчера писал на MySQL, а сегодня вдруг начал писать на Посгресе. Как он будет писать? Да в целом также, как и раньше, используя лишь самый минимальный набор возможностей новой базы. Практика показывает, что проходят годы, прежде чем СУБД начинает использоваться более менее полноценно.

Читать дальше →

Java: автоматически формируем SQL-запросы

Время на прочтение4 мин
Охват и читатели28K
В этой статье я опишу создание фреймворка для автоматической генерации SQL-запросов на основе классов и объектов Java. Я понимаю, что уже существует множество готовых подобных решений, но мне захотелось реализовать это самому.

Для создания фреймворка будем использовать Java-аннотации и Java Reflection API.

Итак, начнем.

Читать дальше →

Как получить оффер в день собеседования. Часть вторая, для PHP-разработчика

Время на прочтение4 мин
Охват и читатели36K


Привет, Хабр! Меня зовут Павел Мурзаков, я – PHP-тимлид в Badoo, и сегодня я расскажу вам о новой возможности получить предложение по работе в Лондоне за один день. Как вы, возможно, знаете, недавно в Москве прошло рекрутинговое мероприятие Badoo по поиску мобильных разработчиков. Оно оказалось очень успешным – мы предложили работу в Лондоне восьми ребятам и надеемся скоро увидеть их в составе нашей мобильной команды.


И, чтобы не отставать от наших iOS- и Android-команд (ведь их теперь на восемь человек больше!), мы решили ответить достойно и провести аналогичное мероприятие, на котором рассчитываем найти server-side-коллег нашим новым мобильным разработчикам!

Читать дальше →

Вклад авторов