|
MySQL SQL Server. |
(Версия: 5.1.51 от 2010-10-08) [+] [есть мнение] |
| Свободно-распространяемый SQL сервер. Отличается высокой скоростью обработки запросов. |
|
|
|
|
skdumper - Site Keeper Dumper |
[+] [обсудить] |
| PHP скрипт для создания и закачки дампа MySQL базы большого объема, для резервного копирования и восстановления без использования сторонних программ. (с дампами больше 10Мб у phpMyAdmin проблемы). |
|
|
|
|
MySQLstat - система для мониторинга работы MySQL сервера |
[+] [обсудить] |
| Набор программ для сбора и графического отображения статистики работы MySQL сервера. Для хранения и отображения статистики используется RRD-tool. Собираемая статистика: количество запросов, количество подключений, In/Out трафик, статистика запросов на запись/чтение ключей. |
|
|
|
|
|
MariaDB - backward compatible, drop-in replacement branch of MySQL |
[+] [обсудить] |
| СУБД MariaDB является ответвлением от MySQL и развивается компанией Monty Program Ab, созданной Майклом Видениусом после его ухода из Sun Microsystems. Серия MariaDB 5.1.x по функциональности совместима с MySQL 5.1.x и основана на той же кодовой базе, что позволяет осуществить миграцию с MySQL на MariaDB без возникновения проблем с совместимостью.
Из особенностей MariaDB, по сравнению с MySQL, можно отметить включение в состав следующих хранилищ:
- Maria - основанное на MyISAM высоконадежное хранилище, отличающиеся повышенной устойчивостью и сохранению целостности данных после краха, при полной совместимости с MyISAM. Благодаря ведению лога операций, в случае краха производится откат результатов выполнения текущей операции. Также поддерживается возможность восстановления состояния из любой точки в логе операций (включая поддержку CREATE/DROP/RENAME/TRUNCATE).
- В качестве замены InnoDB используется движок XtraDB, основанный на коде InnoDB-plugin и полностью совместимый с ним, но отличающийся заметно более высокой производительностью, благодаря интеграции патчей от компаний Google и Percona. В частности, в XtraDB улучшен механизм работы с памятью, улучшена работа подсистемы ввода/вывода InnoDB, добавлена поддержка нескольких потоков чтения и записи, поддержка управления пропускной способностью, реализация упреждающей выборкой данных (read-ahead), адаптивная установка контрольных точек (adaptive checkpointing), расширены возможности по масштабированию для больших проектов, система организации блокировок адаптирована для работы на системах с большим числом CPU, добавлены дополнительные возможности для накопления и анализа статистики.
- В состав включено хранилище PBXT (PrimeBase XT), разработанное с нуля и поддерживающее мультиверсионный метод организации хранения данных MVCC (multi-version concurrency control), позволяющий избавиться от блокировок при выполнении операций чтения. PBXT поддерживает ACID-совместимые транзакции, быстрый откат транзакций и восстановление после некорректного завершения работы сервера. Имеются средства для обеспечения ссылочной целостности данных, поддержка определения внешних ключей (foreign key), каскадных обновлений и удалений данных. Поддерживается возможность прямого потокового ввода и вывода бинарных данных (BLOB) в БД.
- В качестве замены разработанного в Sun Microsystems и уже не поддерживаемого хранилища Federated задействован проект FederatedX. FederatedX позволяет организовать обращение к удаленным таблицам как к локальным. Имеется поддержка транзакций, одновременной установки нескольких соединений к удаленной СУБД, использования операций "LIMIT".
Другие улучшения MariaDB:
- Реализована возможность создания пула потоков, позволяющего использовать заданное число mysql-нитей для обработки всех запросов, вместо механизма "одна нить на одно соединение". В итоге можно значительно увеличить производительность БД, обрабатывающих большое число соединений или имеющих большое число длительно выполняющихся запросов;
- Ликвидация таблиц - новый вид оптимизации операций по объединению таблиц (JOIN), позволяющий исключить обращения к некоторым таблицам, на которые ссылается запрос пользователя;
- Добавлено множество патчей, созданных компанией Percona и сообществом независимых разработчиков. Например, добавлен патч для выявления узких мест при работе с базой. Кроме отслеживания запросов выполняющихся более заданного времени, поддерживается занесение в лог информации о запросах приводящих к перебору большого числа строк, сложным сортировкам, задействованию временного файла на диске или удовлетворяющих параметрам заданного фильтра (qc_miss, full_scan, full_join, tmp_table, tmp_table_on_disk, filesort, filesort_on_disk). В отличии от стандартного механизма ведения лога медленных запросов, msl оперирует не секундами, с округлением в большую сторону, а отрезками 0.005 сек.
|
|
|
|
|
InfiniDB - scale-up analytics database engine for your data warehousing |
[+] [обсудить] |
| MySQL-хранилище, предназначенное для организации обработки и выполнения аналитических запросов над большими массивами данных (Data Warehouse). InfiniDB подходит для создания хранилища для средств бизнес-аналитики, организации систем генерации отчетов и использования в программах с интенсивным чтением данных из БД. Слабое место InfiniDB - производительность добавления данных. Исходные тексты разработки распространяются в рамках лицензии GPL v2.
В отличие от других хранилищ, InfiniDB хранит данные не построчно, а с разбивкой по столбцам, что позволяет оптимизировать выполнение группировки по столбцам из БД большого размера (сотни гигабайт). Особенно эффективен подобный подход, когда данные в столбцах повторяются. Кроме построчного хранения с целью оптимизации операций ввода/вывода в InfiniDB поддерживается автоматическое вертикальное и горизонтальное партицирование больших таблиц, позволяющее логически распределять данные по хранилищам в привязке к диапазонам хранимых значений. При партицировании не требуется ручное проектирование схемы БД или определение места размещения хранилищ.
Другие особенности InfiniDB:
- Многопоточная организация работы, позволяющая максимально использовать ресурсы многоядерных систем;
- Поддержка выполнения множества одновременных запросов, лимит выполнения конкурирующих запросов ограничен только мощностью сервера;
- В комплект входит специальный инструмент для отдачи больших объемов данных с высокой скоростью;
- Поддержка всех DML операций (insert, update, delete);
- Поддержка ACID-совместимых транзакций и система обнаружения взаимных блокировок (deadlock);
- Предоставление средств для автоматического восстановления базы в случае сбоя системы (например, внезапного отключения питания);
- Мультиверсионный (MVCC) дизайн позволяет избежать блокировки при чтении данных, всегда отдается текущий "снапшот" состояния, одновременно вносимые изменения будут отражены уже в другом снапшоте;
- Отсутствует необходимость в создании индексов, так как индексация при вертикальном и горизонтальном партицировании производится автоматически;
- Поддержка конструкция по изменению налету структуры таблиц (ALTER TABLE);
- Прозрачное сжатие с выбором метода сжатия в зависимости от типа хранимых данных;
- Набор средств для диагностики производительности, формирования подсказок по тюнингу, выполнения трассировки для выявления неоптимальных SQL запросов;
- Реализация в виде обычного MySQL-хранилища, подразумевает возможность прозрачного использования во всех приложениях, поддерживающих MySQL.
|
|
|
|
|
Galera Replication - система синхронной репликации для MySQL и PostgreSQL |
[+] [обсудить] |
| Система синхронной репликации для MySQL (в разработке также находится версия для PostgreSQL). В отличии от асинхронных систем Galera гарантирует, что изменение единовременно отражается на всех узлах кластера. Отрицательной стороной синхронной репликации является то, что производительность записи/изменения данных на всем кластере упирается в производительность самого медленного/нагруженного узла.
Достоинства системы:
- Высокая доступность, все узлы всегда содержат актуальные данные и в случае падения первичного узла его может мгновенно заменить вторичный;
- Транзакции могут быть выполнены параллельно на всех узлах кластера;
- Гарантирована неизменность состояния кластера в целом при выполнении транзакции, независимо от других выполняемых в данный момент транзакций;
- Возможность масштабирования операций записи, данные могут быть записаны на N узлов, а затем автоматически распространены ими по оставшимся узлам кластера;
- Возможность масштабирования операций чтения, данные можно читать с любого вторичного узла и они будут гарантированно актуальны.
|
|
|
|
|
Mycached - memcached protocol support for MySQL |
[+] [обсудить] |
| В рамках проекта Mycached реализована поддержка протокола memcached для обращения к MySQL базам, т.е. дает возможность обратиться к существующей MySQL базе не через SQL запрос, а через протокол memcached. Проект выступает своего рода противоположностью memcached хранилища к MySQL, позволяющему обращаться к внешнему mymcached серверу через стандартные SQL команды.
По задумке авторов Mycached, прямой запрос ключей из хранилища, позволит оптимизировать скорость выполнения запросов, благодаря пропуску шагов по парсингу SQL и планированию выполнения запроса. При предварительном тестировании, в простейших запросах, обращение по протоколу memcached оказалось в два раза быстрее, чем выполнение стандартных SQL запросов, обеспечив при этом значительное опережение в плане организации параллельных запросов к базе. Mycached позволяет комбинировать гибкость MySQL с высокой производительностью решений подобных MemcacheDB (модифицированная версия memcached с сохранением кэша на диск в Berkeley DB базе).
В настоящий момент Mycached поддерживает только чтение данных (команда get) и прозрачное преобразование записи в JSON представление (добавление постфикса ":json" к запрашиваемому ключу). Возможен вывод нескольких столбцов за один запрос и вывод отдельных столбцов.
|
|
|
|
|
Maatkit (MySQL Toolkit) - essential command-line tools for MySQL |
(Версия: 7119 от 2010-12-23) [+] [обсудить] |
| Набор полезных вспомогательных утилит для работы с MySQL сервером. Например, проверка контрольных сумм таблиц (напирмер, для определения какие данные на мастере и слейве отличаются), профилирование запросов, визуальное отображения статистики EXPLAIN, синхронизация таблиц, mk-parallel-dump/mk-parallel-restore, выявление дублирующихся ключей и т.п. |
|
|
|
|
ExtSQL - Extended Usage Statistics for SQL |
[+] [обсудить] |
| Проект основан на исходных текстах MySQL и распространяется в рамках лицензии GPL. Код ExtSQL разрабатывался для использования в системах web-хостинга и призван решить проблемы, связанные с организацией учета потребления ресурсов. ExtSQL предоставляет возможность загрузки модифицированных вариантов MySQL 4.1.x и MySQL 5.0.x, в которые добавлены новые команды и расширен диалект SQL.
Администраторы ExtSQL получили возможность более полного мониторинга активности пользователей, баз и соединений. Например, запрос "SHOW STATISTICS select, insert FROM user HISTORY" позволит узнать число запросов "select" и "insert" совершенных пользователями за последний час. Организация Software Workshop входит в состав технического комитета INCITS H2, участвующего в развитии стандарта SQL, и пытается добиться расширения SQL в плане добавления возможностей для учета потребления ресурсов. Компания надеется, что Sun Microsystems включит разработанные дополнения в состав MySQL.
Следует заметить, что для СУБД PostgreSQL ведется разработка аналогичной функциональности. Но основываясь на результатах голосования, в первую очередь был открыт свободный доступ к модифицированному варианту MySQL.
|
|
|
|
|
XtraDB - Percona XtraDB Storage Engine for MySQL |
[+] [обсудить] |
| Новое хранилище для MySQL, созданное компанией Percona и основанное на коде InnoDB-plugin-1.0.2 и на 100% совместимое с ним. По сравнению с InnoDB в XtraDB улучшен механизм работы с памятью и расширены возможности по масштабированию для больших проектов. В отличии от InnoDB-plugin, код XtraDB распространяется только под лицензией GPL v2, без использования практики введения отдельной лицензии для коммерческих продуктов.
Некоторые особенности:
- INFORMATION_SCHEMA.XTRADB_ENHANCEMENTS с информацией о различиях XtraDB и InnoDB той же версии.
- В вывод SHOW INNODB STATUS добавлена дополнительная информация о распределении памяти и блокировках.
- Улучшена работа подсистемы ввода/вывода InnoDB, добавлена поддержка нескольких потоков чтения и записи, управление пропускной способностью и упреждающей выборкой данных (read-ahead), адаптивная установка контрольных точек (adaptive checkpointing).
- Исправления механизма RW-блокировок, направленные на улучшение работы на системах с более чем 8 CPU;
- Улучшение работы buffer_pool. Добавление таблицы innodb_buffer_pool_pages с информацией о содержимом страниц в buffer_pool.
Опубликованы результаты тестирования производительности XtraDB. В тесте NOTPM (New Order Transactions Per Minute) XtraDB оказался быстрее InnoDB в полтора раза.
|
|
|
|
|
Drizzle - Lightweight SQL Database for Cloud and Web |
(Версия: 7.2.3 от 2012-08-04) [+] [обсудить] |
| В рамках проекта Drizzle создается упрощенный и более быстрый вариант MySQL, в котором убрана поддержка некоторых типов данных, хранимых процедур, триггеров, кэша запросов (query cache), представлений (view), операции GRANT и системы ACL, команды SHOW, предварительно подготовленных запросов (prepared statement) и других утяжеляющих работу MySQL возможностей. В качестве хранилища по умолчанию будет использован InnoDB.
Курирует проект директор MySQL по архитектуре Брайан Эйкер (Brian Aker), но развитие проекта будет полностью делегировано комьюнити, по схеме подобной взаимодействию Fedora и RedHat. В качестве лицензии выбрана GPL v2. Архитектура Drizzle построена на основе идеи микро-ядра и подключаемых в виде модулей дополнительных возможностей. |
|
|
|
|
PBXT - PrimeBase XT Storage Engine for MySQL |
[+] [обсудить] |
| Разработанное с нуля хранилище данных для MySQL, поддерживающее следующие возможности:
- Мультиверсионная организация хранения данных MVCC (multi-version concurrency control), позволяющая избавиться от блокировок при выполнении операций чтения;
- ACID-совместимая поддержка транзакций, включая возможность обработки нескольких конкурирующих транзакций;
- При изменении данных и выполнении операций "SELECT FOR UPDATE" блокировка производится на уровне конечных записей;
- Поддержка быстрого отката транзакций и восстановления после некорректного завершения работы сервера;
- Система обнаружений взаимных блокировок (Deadlock);
- Использование хранилища в виде журнала, позволяет записывать данные напрямую в БД, без создания отдельного лога транзакций;
- Обеспечение ссылочной целостности данных, поддержка определения внешних ключей (foreign key), каскадных обновлений и удалений данных;
- Возможность прямого потокового ввода и вывода бинарных данных (BLOB) в БД.
|
|
|
|
|
|
mydbf2mysql - утилита для импорта DBF баз в MySQL |
[+] [обсудить] |
| Консольная кроссплатформенная утилита для импорта DBF баз в MySQL. Имеется стандартный набор функционала, такой как: выбор полей, таблиц и прочего. Также возможно указать число рабочих потоков (для регулирования производительности). В следующей версии будет добавлена возможность компиляции трех полей из Dbase в одно поле типа дата в MySQL, разрабатывается GUI интерфейс.
|
|
|
|
|
|
GreenSQL - Open Source database firewall |
(Версия: 1.3.0 от 2010-10-20) [+] [обсудить] |
| Позволяет защитить MySQL от атак, направленных на подстановку SQL запросов. В отличии от mod_security, реализующего подобную защиту на уровне проверки запросов к http-серверу, GreenSQL представляет собой прокси сервер, непосредственно анализирующий транзитные запросы, выявляющий аномалии и блокирующий опасные операции.
Для каждого запроса GreenSQL вычисляет степень риска, при превышении определенного порога запрос блокируется. В качестве фактов повышающих коэффициент риска, может быть обращение к служебным таблицам, использование комментариев внутри запроса, операции сравнения констант ("1=1"), наличие выражений заведомо возвращающих TRUE, обнуление полей с паролем, появление "OR" внутри запроса и т.д.
Программа позволяет определить список допустимых и запрещенных (например, блокировать запросы с упоминанием id администратора) масок для таких операций, как DELETE, UPDATE и INSERT, а также блокировать выполнение административных операций, подобных DROP и CREATE. Управление программой и просмотр статистики работы производится через web-интерфейс. |
|
|
|
|
|
|
DBSlayer - lightweight database abstraction layer |
[+] [обсудить] |
| Балансировщик обращений к slave серверам MySQL, для использования на высоконагруженных сайтах. Запросы и ответы передаются в JSON-формате. При определении факта недоступности сервера, запрос посылается к другому. Используется для обеспечения работы сайта газеты New York Times. |
|
|
|
|
phpMyAdmin - Effective MySQL Management |
(Версия: 4.2.3 от 2014-06-10) [+] [обсудить] |
| Web-интерфейс для управления СУБД MySQL. Позволяет манипулировать базами, таблицами, привилегиями, индексами и полями, производить выборку и резервное копирование данных.
Другие web-интерфейсы для MySQL:
NG-Admin - интерфейс специализирующийся на изменении содержимого базы.
PHP Mini SQL Admin - упрощенный интерфейс в виде одного небольшого скрипта;
FlashMyAdmin - интерфейс на Flash;
jspMyAdmin - клон phpMyAdmin на Java;
KooDB - упрощенный интерфейс;
MySQL Administrator - стандартный многоплатформенный GUI интерфейс от разработчиков MySQL. |
|
|
|
|
|
ZRM - Zmanda Recovery Manager |
[+] [обсудить] |
| Открытое решение enterprise-класса для резервного копирования MySQL баз. ZRM обладает такими возможностями как использование для бэкапа методов mysqldump, LVM snapshot, mysqlhotcopy или MySQL replication. Система написана на языке Perl и снабжена удобным пользовательским интерфейсом. |
|
|
|
|
mysql_quota - MySQL Quota-Tool |
[+] [обсудить] |
| Небольшой скрипт периодически сканирующий размер баз пользователей и при обнаружении факта превышении отведенной квоты на размер, запрещающий для пользователя добавление данных и создание таблиц. |
|
|
|
|
Sphinx - Free open-source SQL full-text search engine |
[+] [обсудить] |
| В рамках проекта Sphinx реализована поддержка полнотекстового поиска для любых типов хранилищ MySQL, включая InnoDB. В последних версиях дополнительно поддерживается СУБД PostgreSQL. Кроме, того приложение привносит ряд дополнительных новшеств, например, создание распределенных поисковых запросов.
Так как автор проекта (Andrew Aksyonoff) проживает в России, то в Sphinx имеется отличная поддержка русского языка, включая возможность подключения русскоязычного стеммера.
Что касается поискового механизма Sphinx (выше речь шла о патче для MySQL входящем в комплект Sphinx), то кроме MySQL имеется поддержка PostgreSQL. При измерении производительности Sphinx выполнил запрос в 15 раз быстрее чем Mnogosearch, в среднем потратив 0.1 сек при индексации 2-4 Гб текста. Разработчики заявляют, что Sphinx неплохо себя чувствует при объемах индексируемых данных до100 Гб или 100 миллионов документов.
Основные особенности Sphinx:
- Высокая скорость индексации (до 10 Мб/сек);
- Высокая скорость поисковой выборки (0.1 сек. для запроса в базе с 2-4 Гб проиндексированного текста);
- Высокая масштабируемость (один CPU может использоваться для обслуживания 100 Гб текста и 100 млн. документов);
- Возможность организации распределенного на несколько узлов поискового механизма;
- Нативная поддержка MySQL, поддерживаются как стандартные движки MyISAM и InnoDB, так и собственное хранилище SphinxSE
- Поддержка поиска по заданным фразам;
- Возможность вероятностного поиска с использованием ранжирования с элементами нечеткой логики;
- Поддержка стеммеров для русского и английского языков;
- Поддержка индексации любого числа полей в документах, вес для которых может изменяться на лету;
- Поддержка групп документов;
- Возможность определения запрещенных слов
- Поддержка различных моделей поиска (совпадение всех ключей, совпадение фразы целиком, совпадение отдельных слов);
- XML интерфейс для интеграции со сторонними проектами;
- Доступно API для PHP, Python, Java, Perl и Ruby.
|
|
|
|
|
|
mysql-checker |
[+] [обсудить] |
| mysql-checker регулярно проверяет состояние mysql и при необходимости в случае чрезмерной загрузки или сбоя перезапускает его (в т.ч. удаленно). Программа написана на Perl. |
|
|
|
|
|
mytop - a top clone for MySQL |
(Версия: 1.6 от 2007-02-22) [+] [обсудить] |
| Консольная утилита для real-time мониторинга состояния mysql процессов, отображает чем в данный момент занят каждый тред MySQL и на что тратится наибольшее число ресурсов.
Аналог: mtop/mkill - MySQL Monitoring Tools.
ptop - top для PostgreSQL. |
|
|
|
|
|
|
|
|
|