Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Схемы в postgre, Схемы в postgre
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




доброго времени суток.
Вопрос относительно организации бд и схем в postgre

Предположим у нас есть приложение, в нем регистрируются юзеры допустим та же соц сеть. Допустимо ли под отдельного юзера создавать отдельную схему? Т.е. в ней будут содержаться таблицы связанные лишь с этим юзером, в них его инфа.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15250
Пользователь №: 4190
На форуме: 9 лет, 1 месяц, 24 дня
Карма: 461




Если честно, то не знаю, сколько возможно сделать схем в постгре. Но считаю, что это будет изврат smile.gif Если тебе очень хочется разнести данные, то сделай партиции. Они в постгре лучше делаются, красивее и удобнее, чем в мускуле.
Хотя, конечно, под каждого юзера делать свою партицию, да еще если и в нескольких таблицах, это изврат будет.

Ты лучше скажи, зачем тебе это нужно?


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




sergeiss

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

При этом нужно понимать что 1 юзер может завести много проектов, и нужно предусмотреть быстрый механизм архивирования и раз архивирования этих проектов.
И в принципе юзеры могу удаляться, т.е. всю инфу юзера придется удалять по всем рабочим таблицам. Вот в этом и вопрос) логически понятно, что для 1 юзера лучше создать 1 хранилище, это должно быть и более производительно и менее накладно в плане дальнейшие работы с данными описанными выше.
А партиции можно применить для проектов.
Я просто может ошибаюсь?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15250
Пользователь №: 4190
На форуме: 9 лет, 1 месяц, 24 дня
Карма: 461




Ты мне вот что скажи для начала: как ты представляешь, что такое партиции? И не надо цитировать гугл smile.gif Меня интересует именно твое личное мнение/ощущение/знание.
А потом я скажу свое мнение о партициях, как их тут можно применить.

PS. Я не говорю, что создание схемы для каждого юзера неправильно. Возможно, это как раз более правильно. Но чтобы это понять, надо сначала оценить оба подхода, их плюсы и минусы.

Это сообщение отредактировал sergeiss - 15.01.2016 - 21:50


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




хорошо, хорошо, что-то вроде кластеризации диска
сейчас проверю себя в гугле)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




sergeiss


PS. Я не говорю, что создание схемы для каждого юзера неправильно. Возможно, это как раз более правильно. Но чтобы это понять, надо сначала оценить оба подхода, их плюсы и минусы.

обмен информацией между пользователями минимальный т.е. просто чат, функционал сервиса для всех пользователей одинаков.
Т.е. структура таблиц для хранения информации будет одна. Потребуется частое удаление большого объема информации и такая же частая заливака скажем с csv файла.

я бы не стал топики плодить и париться, запустил партиции по юзер id в списке товаров в общей таблице и трава не расти, но именно вот это исключение большого объема данных и быстрое возвращение в базу и заставляет искать решения
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15250
Пользователь №: 4190
На форуме: 9 лет, 1 месяц, 24 дня
Карма: 461




hurt3, дабы не повторяться и не копипастить, я тебя просто "пошлю" smile.gif в свою же тему, где я писал о партициях http://phpforum.su/index.php?showtopic=84298

Что касается сравнения схемы vs партиции для соцсети... Опиши, какие наиболее частые задачи могут возникать, иначе не получится сравнить. Плюсы-минусы есть у каждого решения.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15250
Пользователь №: 4190
На форуме: 9 лет, 1 месяц, 24 дня
Карма: 461




Цитата (hurt3 @ 15.01.2016 - 22:00)
обмен информацией между пользователями минимальный т.е. просто чат, функционал сервиса для всех пользователей одинаков.
Т.е. структура таблиц для хранения информации будет одна. Потребуется частое удаление большого объема информации и такая же частая заливака скажем с csv файла.

Это ты сейчас говоришь, что обмен инфой минимальный smile.gif Потом может появиться другая идея, которая приведет к существенному увеличению этого обмена. В случае полного отсутствия взаимообмена вполне подходят схемы. Но как только появляется взаимный обмен, то тебе придется, скорее всего, дублировать инфу в разных схемах. Поэтому в случае взаимообмена инфой лучше будут партиции. Там, в ряде таблиц, инфа будет в единственном экземпляре, но для разных юзеров.
Далее. Предположим, что ты "вдруг" решил поменять структуру хотя бы одной таблицы. Или, еще веселее, структуру нескольких таблиц, связанных друг с другом. В случае схем тебе придется запускать команды на изменение столько раз, сколько у тебя схем, т.е. сколько юзеров. На это уйдет некоторое время, возможно очень немалое. В течение этого времени могут быть проблемы с выборкой и особенно с записью данных. То есть, БД придется закрыть для доступа. Для партиций это будет сделано только один раз, все партиции будут изменены одновременно.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




так допустим -это просто пример для понимания ситуации

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

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


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

Ну и давай на всякий случай отметим, что однажды инфу по сервакам может понадобится разность.
Старые клиенты новые клиенты или иной варриант.

ну и конечно чат)


И вот, что получается допустим у нас регистрируются 10 000 человек каждый заводит 5-100 компаний. В одной компании ну пускай будет 20 тыс позиций товаров, товары заливаются, комментируются, оцениваются удаляются или удаляются пачками
вот здесь уже встает вопрос об уникальном id товара. У 2хюезров могут быть одинаковые товары, но это 2 разные позиции с точки зрения системы и они имеют разную сопутствующую инфомрацию -отзывы, оценки и прочее..
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




sergeiss
спасибо я тебя понял, но на всякий случай посмотри, что вверху набросал, и вот то же вопрос ресурсов вариант со схемами будет жрать больше при хранении?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15250
Пользователь №: 4190
На форуме: 9 лет, 1 месяц, 24 дня
Карма: 461




Цитата (hurt3 @ 15.01.2016 - 22:30)
будет жрать больше при хранении?

Если контент будет дублироваться, то да, больше.

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

Да и вообще. Сделай пару тестовых БД. В одной сделай несколько схем, в другой - партиции. "Поиграйся" с ними, почувствуй разницу. И не забывай по ходу дела делиться с форумчанами своим опытом.

Это сообщение отредактировал sergeiss - 15.01.2016 - 22:54


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




sergeiss


т.е. ты имеешь виду что допустим унас будут просто таблицы в одной схеме.
при этом таблица товаров должна иметь партиции на юзера и его компанию?

Т.е. на связку 1юез+ 1 его компания будет создаваться своя партиция?
т.е. по сути дела 1 отдельная таблица?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15250
Пользователь №: 4190
На форуме: 9 лет, 1 месяц, 24 дня
Карма: 461




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

И еще раз повторю - лучше сам создай партиции и схемы, "поиграйся" с ними. Иначе просто не прочувствуешь.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




sergeiss
спасибо
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hurt3  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 143
Пользователь №: 38653
На форуме: 3 года, 2 месяца, 28 дней
Карма:




пообщался с админами хостингов, говорят не желательно, на обычном хосте максимум 20 схем
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса