|  | 
| 
Структура данных | |||
|---|---|---|---|
| #18+ Добрый день! Уважаемые практики, дайте пожалуйста совет. Предположим есть много пользователей (пусть 500 тысяч или 1 млн). Данные пользователей (пусть 80 колонок с данными) могут храниться: 1. все в одной таблице, т.е 500 - 1 млн записей в таблице по 80 колонок; 2. по заполнению для каждого пользователя динамически (программно) создается своя, отдельная таблица, т.е 1 млн. отдельных, для каждого пользователя, с одинаковой структурой, таблиц. Какой вариант предпочтительней с точки зрения производительности и скорости обработки данных? Спасибо :-) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 08:01 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63, таки надо понять, производительность чего вы измеряете? (вставка, чтение, обновление, удаление). Видимо с этим же показателем и связано наиболее частые операции.  Насчет второго варианта мне он кажется подозрительным.... Например, обновление свойств у нескольких пользователей как будет выглядеть? А выборка свойств для нескольких пользователей? Это вопросы к "производительности" - часть операций на плоской многоколоночной таблице будут быстрее(чтение, например). Часть операций могут быть медленее из-за блокировок, к примеру. Но если выбор из этих двух вариантов - я бы предпочел многоколоночное решение. Чтобы местная публика продолжила дискуссию, думается, надо накидать операции, производительность которых вы желаете "измерять". p.s. При таком небольшом кол-ве данных их всегда можно сгененрировать и измерить прямо не отходя от кассы. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 08:43 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ п. 2 какой-то бред, ИМХО. Если из 80 колонок в большинстве случаев заполнены всего 5-6 параметров, то можно рассмотреть EAV. Это еще пара таблиц(справочник и данные), где каждый параметр пользователя хранится в отдельной записи. Также можно хранить исторические данные, т.е. зависящие от времени. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 09:49 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ А какая СУБД потянет такое количество таблиц в одной базе? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 09:51 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ 982183А какая СУБД потянет такое количество таблиц в одной базе?Никакая. Это бред ТСа :) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 09:53 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63Добрый день! Уважаемые практики, дайте пожалуйста совет. Предположим есть много пользователей (пусть 500 тысяч или 1 млн). Данные пользователей (пусть 80 колонок с данными) могут храниться: 1. все в одной таблице, т.е 500 - 1 млн записей в таблице по 80 колонок; 2. по заполнению для каждого пользователя динамически (программно) создается своя, отдельная таблица, т.е 1 млн. отдельных, для каждого пользователя, с одинаковой структурой, таблиц. Какой вариант предпочтительней с точки зрения производительности и скорости обработки данных? Спасибо :-) А вот, например, задача - отобрать всех пользователей, которые родились раньше 1990 года. Как вы будете решать эту задачу во втором случае и какая будет производительность? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 09:58 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63Какой вариант предпочтительней Нанять специалиста. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 10:18 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63, Ни первый, ни второй вариант. Нужно рассмотреть существование нескольких таблиц - справочники, однотипные данные. Наверняка можно всё выложить в 80 полей, а-ля Эксель. И это будет редкозаполненная матрица. Это нехорошо. Вернее даже не так. Для чего эта таблица? Нужно будет потом делать анализ, выборки из этой матрицы. И скорее всего, выборки будут по столбцам. Как вариант - база с "колоночным" хранением (или как там по-научному называется). ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 10:21 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63Какой вариант предпочтительней с точки зрения производительности и скорости обработки данных? покурить про нормализацию данных. выделить отдельные сущности ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 17:34 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63Какой вариант предпочтительней пойти в кондукторы ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 17:35 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ 982183А какая СУБД потянет такое количество таблиц в одной базе? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 22:34 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ 982183А какая СУБД потянет такое количество таблиц в одной базе? Oracle ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 20.03.2019, 22:34 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ Чисто теоретически: И как вы оцениваете затраты СУБД на обработку такого количества таблиц? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.03.2019, 03:34 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ 982183, Мы ж не знаем целевой функции, может задача освоить бюджет ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.03.2019, 11:04 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ Выбить финансирование на новый сервер.... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.03.2019, 12:24 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ 982183Выбить финансирование на новый сервер.... + лучше с запасом - квантовый ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.03.2019, 13:18 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ Только этот вариант!  авторДанные пользователей (пусть 80 колонок с данными) могут храниться: 1. все в одной таблице, т.е 500 - 1 млн записей в таблице по 80 колонок; В БД во время штатной работы системы (программы) не должны создаваться новые таблицы, иначе это ошибка проектирования БД. авторКакой вариант предпочтительней с точки зрения производительности и скорости обработки данных? На самом деле всё равно с этой точки зрения. А вот попросят тебя посчитать какую-то статистику ПО ВСЕМ ПОЛЬЗОВАТЕЛЯМ -- что ты скажешь начальству своему? Что плохо учился в школе и не умеешь БД проектировать? Или будешь динамический запрос на 500тысяч таблиц собирать? Ну так тебя тут же и уволят... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 23.03.2019, 01:16 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63, из этих двух однозначно первый. да и при хорошей индексации таблицы, он предпочтительней того же EAV. Делай одну таблицу, навешивай нужные индексы. Всё будет работать без видимых глазу задержек. У самого есть таблица 73 миллиона записей (правда полей только 61) Как-то даже и не замечает никто что там размер таблицы 24 гигабайта. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.03.2019, 09:50 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka632. по заполнению для каждого пользователя динамически (программно) создается своя, отдельная таблица, т.е 1 млн. отдельных, для каждого пользователя, с одинаковой структурой, таблиц. Ерунда какая-то. Так не проектируют БД. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.03.2019, 16:11 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ Mr.Fontainevladka63, из этих двух однозначно первый. да и при хорошей индексации таблицы, он предпочтительней того же EAV. Делай одну таблицу, навешивай нужные индексы. Всё будет работать без видимых глазу задержек. У самого есть таблица 73 миллиона записей (правда полей только 61) Как-то даже и не замечает никто что там размер таблицы 24 гигабайта.Этот подход не годится. Очень часто придется добавлять новые параметры. А это новые поля. Добавить на лету новое поле в таблицу с 100млн. записей - стрёмное занятие. Иногда еще придется и удалять/переопределять. Правильное решение - новый параметр это просто новая запись(и) в табличке(ах). Его легко добавить/удалить/изменить ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2019, 09:56 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ L_argo, в каких-то случаях, да. Правильное решение - EAV. В каких-то нет. Нет единого правильного решения. P.S. Тем более в исходных данных варианта "новый параметр это просто новая запись(и) в табличке(ах)." вообще нет. Там всего из двух пунктов выбор. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2019, 10:23 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63Предположим есть много пользователей (пусть 500 тысяч или 1 млн). Данные пользователей (пусть 80 колонок с данными) могут храниться: 1. все в одной таблице, т.е 500 - 1 млн записей в таблице по 80 колонок; 2. по заполнению для каждого пользователя динамически (программно) создается своя, отдельная таблица, я бы предложила 3-й вариант(и несколько раз я его применяла) -- основная таблица (до 10 полей, например kod1,фио,дата рождения,пол,,,) --и десяток подчиненных(у меня было до 26), в каждой по 5-10 связанных логически полей 2.родственники(код2,код1,степень родства......) 3.адреса(код3,код1,тип адреса ,код региона, код города,.........) 4.образование(код4,код1,.......) 5.место работы...... 6.награды.... 7.наказания...... ..... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2019, 10:42 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ Вполне стандартный подход. Обязательные поля в основной таблице. Необязательные или многозначные в EAV. Видел извращения в виде отдельной EAV таблицы для данных определенного типа. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2019, 10:48 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ vladka63Какой вариант предпочтительней с точки зрения производительности и скорости обработки данных? вариантов обработки -3 1-с головы, с основной таблички, --выбираем по фио,дата рождения,пол, --на выбранную запись навешиваем выбранные из подчиненных(по потребности) по код1 2- с подчиненных --ищем жителей ТУЛА и получаем таблицу раб11 с код1 --ищем образование ВЫСШЕЕ ЭКОНОМИЧЕСКОЕ по образованию+раб11 , получаем раб12 3- динамическое формирование запроса(выбираются поля и формируется строка запроса --нет смысла прицеплять подчиненные, если от них не нужна информация) -- select....from основная inner join t_adres ..... inner join t_obrasovanie..... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2019, 11:00 |  | ||
| 
Структура данных | |||
|---|---|---|---|
| #18+ 982183Видел извращения в виде отдельной EAV таблицы для данных определенного типа. вполне разумно для --мемо(встречала до 50кб, предпочитаю до 1кб, а то и по-параграфно) --оле + некий текст или место первоисточника --вложения(строго 1 вложение в записи + некий текст или место первоисточника) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.03.2019, 11:06 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=5&tid=1539947]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 36ms | 
| get topic data: | 11ms | 
| get forum data: | 2ms | 
| get page messages: | 56ms | 
| get tp. blocked users: | 2ms | 
| others: | 233ms | 
| total: | 368ms | 

| 0 / 0 | 
