Ветка MySQL c большими возможностями         Сергей Петруня (psergey@askmonty.org)                   Monty Program Ab
ветка MySQL с                                              дополнительными                                              во...
Текущее состояние MariaDB• MariaDB 5.1  –   MariaDB 5.1.32 Beta – 20.04.2009  –   MariaDB 5.1.38 Beta – 29.10.2009  –   Ma...
Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время...
Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время...
Табличный движок ХtraDB – история• Состояние до 2005 г   – MySQL Ab разрабатывает MySQL                                   ...
Табличный движок ХtraDB – история (2)                                                       MySQL                         ...
Табличный движок ХtraDB – история (3)• 2009 г: Monty Program включает XtraDB    в состав MariaDB           MySQL          ...
Отличия InnoDB Plugin от InnoDBНа первый взгляд, никаких:            CREATE TABLE tbl (...) engine=innodb;На самом деле• Б...
Отличия XtraDBОпять: на первый взгляд, никаких:            CREATE TABLE tbl (...) engine=innodb;На самом деле:• Дальнейшие...
Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время...
Больше информации в slow query log (1)   # my.cnf   slow_query_log=/path/to/slow.log  +log_slow_verbosity=query_plan  +log...
Больше информации в slow query log (2) MySQL # Time: ... # User@Host: root[root] @ localhost [] # Query_time: 3.480293  Lo...
Микросекунды в PROCESSLIST• Основано на microsec_process.patch от Percona• PROCESSLIST показывает микросекунды   – Полезно...
Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время...
Оптимизация Table Elimination• Применима к запросам к сильно нормализованным данным• Реализована в Oracle, SQL Server, etc...
Оптимизация Table Elimination   Найти OUTER JOINы, у которых внутренняя часть “не     используется”, и удалить эти внутрен...
Когда применима Table Elimination (1)• Высокая степень нормализации, например    actor(name,          date_of_birth,      ...
Когда применима Table Elimination (2)• Выборка в денорма-   лизованном виде: create view actors as select * fromselect  ac...
Table Elimination - примерыexplain select ACRAT_rating, ACDOB_birthdate from actors where ACNAM_name=Gary Oldman;+­­­­+­­­...
Table elimination – выводы• Покрывает следующий сценарий использования:   – Необязательные и/или версионированные       ко...
Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время...
Табличный движок PBXT• Разрабатывается PrimeBase technologies• Выполняет требования ACID• Архитектура основана на логах  –...
Табличный движок Maria• Основан на MyISAM  – Поддерживает fulltext и GIS индексы• Отличия от MyISAM:  – Наличие Page Сache...
Пул тредов• Традиционная модель MySQL: сервер это один процесс,    каждому клиентскому соединению выделяется тред• Пул тре...
Табличный движок FederatedX• Это Federated из MySQL 5.1 с   некоторыми исправленными   ошибками.
Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время...
Cовместимость с MySQLБиблиотека libmysql                      ДаКлиент-серверный протокол                ДаИмена и синтакс...
MariaDB 5.2Цель релиза:    включить известные испытанные патчи, а также    собственные небольшие и/или безопасные фичиНовы...
MariaDB 5.2, userstats v2 patch (1)MariaDB > set global userstat=1;      ...MariaDB > select * from information_schema.use...
MariaDB 5.2, userstats v2 patch (2)Доступны таблицы• USER_STATISTICS  – Статистика по MySQL-пользователям• CLIENT_STATISTI...
MariaDB 5.2 - Виртуальные колонкиcreate table tbl (  …  column typename AS (expression) [VIRTUAL|PERSISTENT],  … ); Поддер...
MariaDB 5.2 – остальные фичи• mysqlbinlog поддерживает --rewrite-db   – Это аналог опции –replicate-rewrite-db у slave   –...
MariaDB 5.2 Beta•   userstatsv2 патч•   Виртуальные колонки•   mysqlbinlog поддерживает –rewrite-db•   Partitioned MyISAM ...
MariaDB 5.3• Находится в фазе активной разработки• Основной фокус на оптимизации   подзапросов  – В первую очередь: expr I...
MariaDB - выводы• Испытанные патчи и новые фичи   собраны и выпущены в виде   исходников и бинарников• MariaDB 5.1 – уже д...
Ссылки• MariaDB manual and downloads http://askmonty.org• “Дополнительные возможности InnoDB и XtraDB”   http://askmonty.o...
Upcoming SlideShare
Loading in …5
×

Devconf2010 mariadb-extra-features

595 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
595
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Devconf2010 mariadb-extra-features

  1. 1. Ветка MySQL c большими возможностями Сергей Петруня (psergey@askmonty.org) Monty Program Ab
  2. 2. ветка MySQL с дополнительными возможностями• Совместима с MySQL (в отличие от Drizzle)• “Branch” а не “fork” ● изменения из MySQL периодически мержатся• Включает разработки ● Sun/MySQL ● Monty Program Ab ● Третьих сторон• Более открытый процесс разработки ● *Весь* исходный код на launchpad.net ● Более открыты для приема сторонних патчей• Еще имя "Maria" носит один из табличных движков, поставляющихся в составе MariaDB.
  3. 3. Текущее состояние MariaDB• MariaDB 5.1 – MariaDB 5.1.32 Beta – 20.04.2009 – MariaDB 5.1.38 Beta – 29.10.2009 – MariaDB 5.1.39 Beta – 15.11.2009 – MariaDB 5.1.41 RC – 13.01.2010 – MariaDB 5.1.42 Stable – 01.02.2010 – MariaDB 5.1.44 Stable – 24.03.2010• MariaDB 5.2 – MariaDB 5.2.0 Beta - 10.04.2010• MariaDB 5.3 – Активная разработка (доступно только дерево)
  4. 4. Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время указывается с точностью до микросекунды• Оптимизация Table Elimination• Табличный движок PBXT• Табличный движок Maria• Поддержка пула тредов• utf8_croatian_ci, ucs2_croatian_ci collations• Табличный движок FederatedX.
  5. 5. Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время указывается с точностью до микросекунды• Оптимизация Table Elimination• Табличный движок PBXT• Табличный движок Maria• Поддержка пула тредов• utf8_croatian_ci, ucs2_croatian_ci collations• Табличный движок FederatedX.
  6. 6. Табличный движок ХtraDB – история• Состояние до 2005 г – MySQL Ab разрабатывает MySQL MySQL – Innobase Oy разрабатывает InnoDB InnoDB – InnoDB включен в поставку MySQL• 2007 г – Google выпускает “google patch” – – Патч затрагивает и MySQL и InnoDB InnoDB часть включает MySQL – Улучшения производительности InnoDB Google – Транзакционную репликацию
  7. 7. Табличный движок ХtraDB – история (2) MySQL InnoDB• Апрель 2008: Oracle/Innobase plugin InnoDB выпускает InnoDB plugin некоторыми изменениями на MySQL основе google patch InnoDB plugin MySQL• Декабрь 2008: Percona, Inc XtraDB InnoDB выпускает XtraDB – Это InnoDB Plugin с дополнительными MySQL улучшениями XtraDB
  8. 8. Табличный движок ХtraDB – история (3)• 2009 г: Monty Program включает XtraDB в состав MariaDB MySQL MySQL InnoDB plugin InnoDB XtraDB InnoDB MariaDB MySQL XtraDB MySQL MySQL InnoDB plugin XtraDB
  9. 9. Отличия InnoDB Plugin от InnoDBНа первый взгляд, никаких: CREATE TABLE tbl (...) engine=innodb;На самом деле• Быстрое создание/удаление индексов• Улучшенная производительность при высокой нагрузке и большом числе параллельных транзакций• Новые способы хранения данных – Компрессия дисковых даных – управляемые upgrade/downgrade• Больше диагностики через INFORMATION_SCHEMA• Прочие улучшения – TRUNCATE TABLE освобождает место – innodb_strict_mode – ошибки вместо warnings.
  10. 10. Отличия XtraDBОпять: на первый взгляд, никаких: CREATE TABLE tbl (...) engine=innodb;На самом деле:• Дальнейшие улучшения производительности при параллельной работе – Больше настраиваемых параметров – Fuzzy checkpointing (более ровная производительность)• Более быстрое восстановление после сбоев• Еще больше диагностической информации• Возможность сохранить/восстановить buffer pool – Можно избежать “холодных стартов”• Куча более мелких улучшений, ориентированных продвинутых DBA.
  11. 11. Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время указывается с точностью до микросекунды• Оптимизация Table Elimination• Табличный движок PBXT• Табличный движок Maria• Поддержка пула тредов• utf8_croatian_ci, ucs2_croatian_ci collations• Табличный движок FederatedX
  12. 12. Больше информации в slow query log (1)  # my.cnf  slow_query_log=/path/to/slow.log +log_slow_verbosity=query_plan +log_slow_filter=name,name,... +log_slow_rate_limit=n name: n: каждый n-ый запрос − admin − filesort, filesort_on_disk, − full_join, − full_scan − query_cache,query_cache_miss, − tmp_table, tmp_table_on_disk.
  13. 13. Больше информации в slow query log (2) MySQL # Time: ... # User@Host: root[root] @ localhost [] # Query_time: 3.480293  Lock_time: 0.000754 Rows_sent: 1  Rows_examined: 10 use test; SET timestamp=...; select count(*) from one_k A, one_k B, ten C where A.a < B.a;MariaDB# Time: ...# User@Host: root[root] @ localhost []# Thread_id: 1  Schema: test  QC_hit: No# Query_time: 4.605642  Lock_time: 0.000964  Rows_sent: 1  Rows_examined: 10# Full_scan: Yes  Full_join: Yes  Tmp_table: No  Tmp_table_on_disk: No# Filesort: No  Filesort_on_disk: No  Merge_passes: 0SET timestamp=...;select count(*) from one_k A, one_k B, ten C where A.a < B.a;
  14. 14. Микросекунды в PROCESSLIST• Основано на microsec_process.patch от Percona• PROCESSLIST показывает микросекунды – Полезно, когда есть множество мелких запросовMySQL:MySQL [(test)]> select * from information_schema.processlist;+­­­­+­­­­­­+­­­­­­­­­­­+­­­­­­+­­­­­­­­­+­­­­­­+­­­­­­­­­­­­­­+­­­­­­­...­+| ID | USER | HOST      | DB   | COMMAND | TIME | STATE        | INFO      |+­­­­+­­­­­­+­­­­­­­­­­­+­­­­­­+­­­­­­­­­+­­­­­­+­­­­­­­­­­­­­­+­­­­­­­...­+|  2 | root | localhost | test | Query   |    2 | Sending data | select    | MariaDB:MariaDB [(test)]> select * from information_schema.processlist;+­­­­+­­­­­­+­­­­­­­­­­­+­­­­­­+­­­­­­­­­+­­­­­­+­­­­­­­­­­­+­­­­­­­...­+­­­­­­­­­­+| ID | USER | HOST      | DB   | COMMAND | TIME | STATE     | INFO      | TIME_MS  |+­­­­+­­­­­­+­­­­­­­­­­­+­­­­­­+­­­­­­­­­+­­­­­­+­­­­­­­­­­­+­­­­­­­...­+­­­­­­­­­­+|  2 | root | localhost | test | Query   |    0 | executing | select    |    1.363 |
  15. 15. Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время указывается с точностью до микросекунды• Оптимизация Table Elimination• Табличный движок PBXT• Табличный движок Maria• Поддержка пула тредов• utf8_croatian_ci, ucs2_croatian_ci collations• Табличный движок FederatedX
  16. 16. Оптимизация Table Elimination• Применима к запросам к сильно нормализованным данным• Реализована в Oracle, SQL Server, etc – И будет в PostgreSQL 9.0, называется “join removal”• Идея: Найти OUTER JOINы, у которых внутренняя часть “не используется”, и удалить эти внутренние частиSELECT tbl1.* FROM    tbl1 LEFT JOIN tbl2 ON tbl2.primary_key=tbl1.idWHERE  condition(tbl1.*)
  17. 17. Оптимизация Table Elimination Найти OUTER JOINы, у которых внутренняя часть “не используется”, и удалить эти внутренние части SELECT tbl1.* FROM    tbl1 LEFT JOIN tbl2 ON tbl2.primary_key=tbl1.id WHERE   condition(tbl1.*)Для каждой записи из tbl1:1. tbl2 будет иметь максимум одну соответсвующую запись (из-за условия tbl2.primary_key=...)2. если в tbl2 не будет соответствующей записи, OUTER JOIN сгенерирует запись с NULLами3. для результата запроса не важно, реализуется ли #1 или #2.
  18. 18. Когда применима Table Elimination (1)• Высокая степень нормализации, например actor(name, date_of_birth, rating) представляется как create table ac_anchor(AC_ID int primary key); create table ac_name(AC_ID int, ACNAM_name char(N), primary key(AC_ID)); create table ac_dob(AC_ID int, ACDOB_birthdate date, primary key(AC_ID)); create table ac_rating(AC_ID int, ACRAT_rating int, ACRAT_fromdate date, primary key(AC_ID, ACRAT_fromdate));
  19. 19. Когда применима Table Elimination (2)• Выборка в денорма- лизованном виде: create view actors as select * fromselect ac_anchor.AC_ID, ACNAM_Name, ACDOB_birthdate, ACRAT_ratingfrom ac_anchor left join ac_name on ac_anchor.AC_ID=ac_name.AC_ID left join ac_dob on ac_anchor.AC_ID=ac_dob.AC_ID left join ac_rating on (ac_anchor.AC_ID=ac_rating.AC_ID and ac_rating.ACRAT_fromdate = (select max(sub.ACRAT_fromdate) from ac_rating sub where sub.AC_I=ac_rating.AC_ID))select ACRAT_rating from actors where ACNAM_name=’Gary Oldman’;
  20. 20. Table Elimination - примерыexplain select ACRAT_rating, ACDOB_birthdate from actors where ACNAM_name=Gary Oldman;+­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..| id | select_type        | table     | type   | possible_keys | key     | key_len | ref               +­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..|  1 | PRIMARY            | ac_anchor | index  | PRIMARY       | PRIMARY | 4       | NULL            | |  1 | PRIMARY            | ac_name   | eq_ref | PRIMARY       | PRIMARY | 4       | ac_anchor.AC_ID | |  1 | PRIMARY            | ac_dob    | eq_ref | PRIMARY       | PRIMARY | 4       | ac_anchor.AC_ID |    |  1 | PRIMARY            | ac_rating | ref    | PRIMARY       | PRIMARY | 4       | ac_anchor.AC_ID | |  3 | DEPENDENT SUBQUERY | sub       | ref    | PRIMARY       | PRIMARY | 4       | ac_rating.AC_ID | +­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..explain select ACRAT_rating from actors where ACNAM_name=Gary Oldman;+­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..| id | select_type        | table     | type   | possible_keys | key     | key_len | ref               +­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..|  1 | PRIMARY            | ac_anchor | index  | PRIMARY       | PRIMARY | 4       | NULL            | |  1 | PRIMARY            | ac_name   | eq_ref | PRIMARY       | PRIMARY | 4       | ac_anchor.AC_ID | |  1 | PRIMARY            | ac_rating | ref    | PRIMARY       | PRIMARY | 4       | ac_anchor.AC_ID | |  3 | DEPENDENT SUBQUERY | sub       | ref    | PRIMARY       | PRIMARY | 4       | ac_rating.AC_ID | +­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..explain select ACDOB_birthdate from actors where ACNAM_name=Gary Oldman;+­­­­+­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..| id | select_type | table     | type   | possible_keys | key     | key_len | ref                  +­­­­+­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..|  1 | PRIMARY     | ac_anchor | index  | PRIMARY       | PRIMARY | 4       | NULL            |    |  1 | PRIMARY     | ac_name   | eq_ref | PRIMARY       | PRIMARY | 4       | ac_anchor.AC_ID |    |  1 | PRIMARY     | ac_dob    | eq_ref | PRIMARY       | PRIMARY | 4       | ac_anchor.AC_ID |    +­­­­+­­­­­­­­­­­­­+­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­+­­­­­­­­­+­­­­­­­­­­­­­­­­­+­..
  21. 21. Table elimination – выводы• Покрывает следующий сценарий использования: – Необязательные и/или версионированные колонки хранятся в отдельных таблицах – Имеется VIEW c денормализованным представлением• При этом – Можно писать простые запросы к VIEW – Неиспользуемые колонки не будут замедлять работу.
  22. 22. Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время указывается с точностью до микросекунды• Оптимизация Table Elimination• Табличный движок PBXT• Табличный движок Maria• Поддержка пула тредов• utf8_croatian_ci, ucs2_croatian_ci collations• Табличный движок FederatedX
  23. 23. Табличный движок PBXT• Разрабатывается PrimeBase technologies• Выполняет требования ACID• Архитектура основана на логах – нет in-place updates• Показывает хорошую производительность при большом числе клиентов и CPU- bound загрузке• Дальнейшая информация на http://primebase.org.
  24. 24. Табличный движок Maria• Основан на MyISAM – Поддерживает fulltext и GIS индексы• Отличия от MyISAM: – Наличие Page Сache (в MyISAM только key cache) – Crash-safety – Полная транзакционность – в планах• В MariaDB используется вместо MyISAM для временных таблиц – ./configure имеет параметр для выбора между использованием Maria и MyISAM.
  25. 25. Пул тредов• Традиционная модель MySQL: сервер это один процесс, каждому клиентскому соединению выделяется тред• Пул тредов: все соединения обслуживаются пулом из N=const тредов. # my.cnf thread­handling=  one­thread­per­connection thread­pool­size= 20 extra­port=# extra­max­connections=#• Известные недостатки – Если запрос ожидает I/O или блокировки, выполняющий его тред не возвращается обратно в пул – При большом числе клиентов производительность может быть ниже, чем у традиционной модели.
  26. 26. Табличный движок FederatedX• Это Federated из MySQL 5.1 с некоторыми исправленными ошибками.
  27. 27. Дополнительные возможности в MariaDB 5.1• Табличный движок XtraDB• Больше статистики в Slow query log• В processlist время указывается с точностью до микросекунды• Оптимизация Table Elimination Все это доступно• Табличный движок PBXT в Stable• Табличный движок Maria версии• Поддержка пула тредов• utf8_croatian_ci, ucs2_croatian_ci collations• Табличный движок FederatedX
  28. 28. Cовместимость с MySQLБиблиотека libmysql ДаКлиент-серверный протокол ДаИмена и синтаксис аргументов утилит Да*Диалект SQL ДаПлагины сервера Не проверялиРепликация Да**Data directory (заменить бинарник Туда: ДаMariaDB на MySQL и запустить) Обратно: Да*** - имена утилит, программ, библиотек одинаковы, поэтому нельзя установить одновременно MySQL и MariaDB** - Если не используются фичи, специфичные для MariaDB (например PBXT или croatian_utf8_ci)
  29. 29. MariaDB 5.2Цель релиза: включить известные испытанные патчи, а также собственные небольшие и/или безопасные фичиНовые возможности• Включен userstatsv2 патч• Виртуальные колонки• mysqlbinlog поддерживает –rewrite-db• Partitioned MyISAM key cache• Поддержка атрибутов колонок/индексов/таблиц• Поддержка плагинов аутентификации• Обновления XtraDB и PBXT.
  30. 30. MariaDB 5.2, userstats v2 patch (1)MariaDB > set global userstat=1;      ...MariaDB > select * from information_schema.user_statistics;*************************** 1. row ***************************                  USER: web     TOTAL_CONNECTIONS: 1CONCURRENT_CONNECTIONS: 0        CONNECTED_TIME: 4             BUSY_TIME: 0.004146              CPU_TIME: 0.0036062        BYTES_RECEIVED: 61            BYTES_SENT: 169             ROWS_READ: 0             ROWS_SENT: 2          ROWS_DELETED: 0         ROWS_INSERTED: 0          ROWS_UPDATED: 0       SELECT_COMMANDS: 2       UPDATE_COMMANDS: 0        OTHER_COMMANDS: 0         ...MariaDB > flush user_statistics;
  31. 31. MariaDB 5.2, userstats v2 patch (2)Доступны таблицы• USER_STATISTICS – Статистика по MySQL-пользователям• CLIENT_STATISTICS – То же, что предыдущее но по клиентским хостам• INDEX_STATISTICS – ROWS_READ для каждого использовавшегося индекса• TABLE_STATISTICS – ROWS_READ, ROWS_CHANGED и ROWS_CHANGED_X_INDEXES для каждой таблицы.
  32. 32. MariaDB 5.2 - Виртуальные колонкиcreate table tbl (  …  column typename AS (expression) [VIRTUAL|PERSISTENT],  … ); Поддерживается два типа • VIRTUAL: не хранятся, всегда вычисляются на лету – На текущий момент не могут быть индексированы • PERSISTENT: хранятся в таблице – могут быть частью индексов.
  33. 33. MariaDB 5.2 – остальные фичи• mysqlbinlog поддерживает --rewrite-db – Это аналог опции –replicate-rewrite-db у slave – Можно “залить” row-based binary log в другую бд• SegmentedPartitioned MyISAM Key Cache – За счет разбивки на части снижается конкуренция за мьютексы• Поддержка атрибутов колонок/индексов/таблиц• Поддержка плагинов аутентификации• Обновления XtraDB и PBXT
  34. 34. MariaDB 5.2 Beta• userstatsv2 патч• Виртуальные колонки• mysqlbinlog поддерживает –rewrite-db• Partitioned MyISAM key cache• Поддержка атрибутов колонок/индексов/таблиц• Поддержка плагинов аутентификации• Обновления XtraDB и PBXT
  35. 35. MariaDB 5.3• Находится в фазе активной разработки• Основной фокус на оптимизации подзапросов – В первую очередь: expr IN (SELECT …) – Во вторую: SELECT … FROM (SELECT …) – В третью: любые коррелированные подзапросы• Еще могут быть фичи – Улучшения в системе репликации – Что-то другое.
  36. 36. MariaDB - выводы• Испытанные патчи и новые фичи собраны и выпущены в виде исходников и бинарников• MariaDB 5.1 – уже давно Stable• MariaDB 5.2 – Beta• Совместима с MySQL, можно – Использовать MySQL-клиенты – Мигрировать туда-обратно – Подключить MariaDB как replication slave – => легко попробовать.
  37. 37. Ссылки• MariaDB manual and downloads http://askmonty.org• “Дополнительные возможности InnoDB и XtraDB” http://askmonty.org/wiki/Image:Std2010-innodb-xtradb.pdf• Эти слайды: http://askmonty.org/wiki/Image:devconf2010-mariadb.pdf

×