SQLinfo.ru - Все о MySQL Highload++ 2017

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.08.2016 07:14:53

E.Wolf
Участник
Зарегистрирован: 23.04.2016
Сообщений: 10

JSON поля, производительность

Доброго времени суток, уважаемые!

В одном проекте, возникла крайняя необходимость использовать использовать в проекте неструктурированные данные, и вот, руки уже потянулись к таким штукам как MongoDB и прочим прелестям... Как вдруг, всплыли два факта:
1. В фреймворке, который мы используем - нет нормальной поддержки NoSQL баз
2. С версии MySQL 5.7 уже поддерживает поля в формате JSON и фреймворк, отлично поддерживает их.

Собственно, вопрос:
Кто-нибудь тестировал производительность JSON-полей? Интересует два варианта развития событий:
а) Таблица представлена в классическом виде, одно поле содержит простой набор значений в виде JSON-массива, типа:

[1, 2, 3]
;
б) Одно поле таблицы представляет из себя полный набор слабо структурированных данных, типа:
{
name: "Jhon Smith",
favorit_films: ["The mask", "Green mile"],
favorit_numbers: [1, 10, 37]
}


Кэшируются ли результаты селектов по JSON-полям? Насколько быстро такой селект будет работать быстрее/медленее чем селект в классическом варианте? Какой из вариантов будет работать быстрее: одно поле с простым JSON-массивом, поле целиком представляющее из себя JSON-массив или несколько таблиц без JSON-полей с множественными связями?

Объём базы данных около 1млн. записей, каждой записи прилагаются примерно 10-15 параметров (ключ-значение).

P.S. Мой опыт работы с MySQL не позволяет грамотно провести подобные тесты, по этому прошу не судить строго.

Неактивен

 

#2 28.08.2016 05:38:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: JSON поля, производительность

E.Wolf написал:

Кэшируются ли результаты селектов по JSON-полям?

да


E.Wolf написал:

Насколько быстро такой селект будет работать быстрее/медленее чем селект в классическом варианте?

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


E.Wolf написал:

Какой из вариантов будет работать быстрее: одно поле с простым JSON-массивом, поле целиком представляющее из себя JSON-массив или несколько таблиц без JSON-полей с множественными связями?

это абстрактный вопрос, на который нет ответа.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson