Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен совет по архитектуре 
:(
    Опции темы
BuShaRt
Дата 17.4.2013, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Задача: реализовать хранение связок "логин, пароль и т.п." для пользователей. Связок у пользователя может быть много. Структура связок хаотична т.е. это можем быть не логин-пароль, а ключь или логин и два пароля.

Организована система следующим образом. Есть таблица пользователей: id, name, xml. Поле xml имеет тип text и содержит полноценный XML документ. Все связки инкапсулированны в XML документ. 1 элимент - 1 связка.

Безопасность подхода не рассматривает т.к. пример сильно изменен для наглядности - реально мы храним другие данные, но их структура совпадает со связками доступа.

В общем, на основание всего вышеизложенного есть следующие вопросы:
1. Легально ли в данном случае использовать движок MyISAM? Как видите - выборка тут идет только по id, но поле xml часто обновляется полностью. + Другие таблица по хорошему часто будет ссылаться на этот id.
2. На сколько разумно вообще тут использовать XML? Работы с ним много (добавление связок, выборка связок по условиям, удаление связок, обновление связок).
3. Что произойдет внутри движка MyISAM, если несколько пользователей одновременно обновят свои XML? И при какой частоте обращений к таблице начинаются подобные проблемы? (Я прочитал, что update в MyISAM блокирует таблицу, но это теория - не как не могу осознать масштабы практических проблем).

Это сообщение отредактировал(а) BuShaRt - 17.4.2013, 17:38
PM MAIL   Вверх
Zloxa
Дата 18.4.2013, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(BuShaRt @  17.4.2013,  18:29 Найти цитируемый пост)
 Другие таблица по хорошему часто будет ссылаться на этот id.

MyISAM умеет foreign key?

Проверка FK требует shared лока. С учетом того, кто гранулярность блокировки MyISAM - таблица, иненсивная модификация связаных таблиц сделает недоступной модификацию мастер таблицы.

Цитата(BuShaRt @  17.4.2013,  18:29 Найти цитируемый пост)
На сколько разумно вообще тут использовать XML? 

На сколько разумно вообще тут использовать MySQL. smile

Цитата(BuShaRt @  17.4.2013,  18:29 Найти цитируемый пост)
3. Что произойдет внутри движка MyISAM, если несколько пользователей одновременно обновят свои XML? И при какой частоте обращений к таблице начинаются подобные проблемы? (Я прочитал, что update в MyISAM блокирует таблицу, но это теория - не как не могу осознать масштабы практических проблем).

В один момент времени изменять данные в таблице может только одна сессия. Все остальные сессии, пытающиеся модифицировать таблицу, в это время ожидают на блокировке. Среднее время ожидания тем больше, чем больше одновременных попыток изменения данных. Полный коллапс наступает тогда, когда скорость прироста количества модифицирующих сессий достигает и превышает скорость выполнения операции модификации.

Это сообщение отредактировал(а) Zloxa - 18.4.2013, 00:17


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.