www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Мониторинг  

Какая задача мониторинга отнимает больше всего времени?

Многие системные администраторы тратят до 30% рабочего времени на рутину мониторинга. Но

 Читать далее...

Рынок труда  

Какие навыки вы хотите развивать в 2026 году?

Рынок труда меняется быстро. Еще вчера его называли рынком соискателей, а сегодня

 Читать далее...

Книжная полка  

От сисадмина до архитектора: книги, которые прокачают ваш стек в этом году

Новинки от издательства «БХВ» отличаются тем, что в них часто делается упор

 Читать далее...

Автоматизация  

Автоматизируем рутину: что реально работает?

Многие сисадмины автоматизировали что-то за последний год. Но далеко не все остались

 Читать далее...

Защита ИТ-системы  

Практическая защита: что вы внедрили и что мешает?

Какие меры безопасности реально внедрить в реальных условиях – и что не

 Читать далее...

Вопрос-ответ  

Обеспечиваем безопасную эксплуатацию базы данных

Что для вас чаще всего является причиной инцидентов с БД? Как вы

 Читать далее...

Книжная полка  

От «безопасного» Linux до Контролируемого взлома

Издательство «БХВ» продолжает радовать читателей интересными новинками и в наступившем году. Вы можете

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 13571
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 13686
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 11142
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 5969
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 6813
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 6702
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 9536
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 6142
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 6349
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 10513
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 13982
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 15436
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 17785
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 12618
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 10635
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 8846
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 7436
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 6247
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 5859
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 6192
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 NoSQL in MySQL

Архив номеров / 2016 / Выпуск №10 (167) / NoSQL in MySQL

Рубрика: Базы данных /  Новый дистрибутив   | Дополнительные материалы

Александр Календарев АЛЕКСАНДР КАЛЕНДАРЕВ, AD1, ведущий программист, akalend@mail.ru

NoSQL in MySQL

Для решения сложных современных задач зачастую требуется использовать слабо структурированные данные, обычно представляемые в формате JSON. Начиная с версии 5.7 ихподдержка появилась в MySQL

Почему зашла речь о NoSQL? В современных архитектурах высоконагуженных проектов хорошо прижились документно-ориентированные NoSQL-хранилища. Они удобны, быстры и легко масштабируются. Практика использования NoSQL показала, что JSON является самым удобным форматом представления документов. Тут лидеры – MongoDB и CoachDb. Теперь к ним добавилась MySQL.

Что же нового в версии 5.7? Тут появились две основные вещи – это тип данных JSON [1] и X-Protocol [2]. С началом использования типа JSON MySQL нельзя назвать пионером. Если отбросить лидера в этой области в лице MongoDB, то можно с уверенностью сказать, что в PosgreSQL типы JSON и JSONB (бинарный) были внедрены намного раньше. Атакже и в MS SQL Server, и в Oracle. И наложение индексов на бинарный JSON тоже было уже реализовано. Тут нет ничего революционного. А вот с использованием X-Protocol MySQL превращается в гибридную БД, совмещающую классический SQL и элементы объектно-документого доступа.

JSON в MySQL

В новой версии (5.7) MySQL появился новый тип данных – JSON, на физическом уровне, осуществляется хранение в формате bson [3]. Реализованы новые функции поддержки JSON, работающие с бинарным представлением: JSON_EXTRACT, JSON_SEARCH, JSON_OBJECT и прочие. Полный перечень функций можно найти в документации [4]. Начнем рассмотрение использования нового типа:

CREATE TABLE employees (data JSON);

INSERT INTO employees VALUES ('{"id": 1, "name": "Jane"}');

INSERT INTO employees VALUES ('{"id": 2, "name": "Joe"}');

SELECT * FROM employees;

+---------------------------+

| data |

+---------------------------+

| {"id": 1, "name": "Jane"} |

| {"id": 2, "name": "Joe"} |

+---------------------------+

2 rows in set (0,00 sec)

При вводе данных происходит парсинг и валидация JSON. Ниже пример демонстрирует, что при невалидном JSON выдается ошибка:

INSERT INTO employees (data) VALUES('text');

ERROR 3140 (22032): Invalid JSON text: "Invalid value." at position 1 in value for column 'employees.data'.

Так как валидация происходит на этапе вставки, то выполнение всех операторов INSERT происходит медленнее, чем у других типов. А вот выборка по элементам массива илиобъекта происходит быстрее, особенно если документ проиндексировать.

Статью целиком читайте в журнале «Системный администратор», №10 за 2016 г. на страницах 60-54.

PDF-версию данного номера можно приобрести в нашем магазине.


  1. Официальная документация, тип JSON – https://dev.mysql.com/doc/refman/5.7/en/json.html.
  2. Официальная документация, документно-ориентированное хранилище – https://dev.mysql.com/doc/refman/5.7/en/document-store.html.
  3. Cпецификация bson – http://bsonspec.org/spec.html.
  4. JSON-функции – https://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html.
  5. Тестовая БД – https://github.com/datacharmer/test_db.
  6. Описание X-Protocol – https://dev.mysql.com/doc/internals/en/x-protocol.html.
  7. Implementation of the X Protocol by the X Plugin – https://dev.mysql.com/doc/internals/en/x-protocol-xplugin-implementation-of-the-x-protocol.html.
  8. Загрузка MySQL Shell – http://dev.mysql.com/downloads/shell.
  9. API mysqlsh – http://dev.mysql.com/doc/x-devapi-userguide/en/working-with-collections-basic-crud.html.
  10. Страница загрузки драйвера Node.js – http://dev.mysql.com/downloads/connector/nodejs.
  11. Документация по API Node.js – http://dev.mysql.com/doc/dev/connector-nodejs.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru