Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разбивать ли таблицу на части? / 16 сообщений из 16, страница 1 из 1
30.07.2013, 21:15
    #38349424
Сержикин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
Есть смысл разбития таблицы? Даст ли это какой либо резон?

Изначально таблица выглядела так
Таблица urls
idurlviewsauthorratingstatistik1statistik2statistik3statistik4statistik5statistik6statistik7...1 http://site.ru/o-bloge.html 5129998462541212...2 http://site.ru/kakoi-libo-adres.html 5129998462541212...

тоесть обращаясь по адресу http://site.ru/o-bloge.html в таблице производится поиск по URL и формируется страница с этими самыми данными, (сколько просмотров, кто автор и куча всякой лабуды)

ТЕПЕРЬ, один молодой и вроде как таллантливый малой посоветовал сделать такой финт - разбить таблицу на части якобы так со всех сторон эфектно

Таблица url
idurl1 http://site.ru/o-bloge.html 2 http://site.ru/kakoi-libo-adres.html

и Таблица topicurl
idviewsauthorratingstatistik1statistik2statistik3statistik4statistik5statistik6statistik7...15129998462541212...25129998462541212...


товарищи профи, а в чём тут эфективность? а? Запросов к базе стало в 2 раза больше ведь
...
Рейтинг: 0 / 0
30.07.2013, 22:16
    #38349477
Alexander2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
Сержикин,
судя по цитате
автортоесть обращаясь по адресу http://site.ru/o-bloge.html в таблице производится поиск по URL и формируется страница с этими самыми данными
ответ будет: действительно, "нахрена козе баян"?! Это же динамически создаваемая таблица.
...
Рейтинг: 0 / 0
31.07.2013, 10:16
    #38349686
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
Сержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.
...
Рейтинг: 0 / 0
31.07.2013, 10:19
    #38349693
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
АнатоЛойСержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.
Поправлю: "Суть выгоды: при поиске по полю url во всей таблице ваша СУБД может вынуждена считывать всю запись. Если в ней нет других полей со статистикой, то объём записи будет меньше - и поиск по url будет производиться быстрее ".
...
Рейтинг: 0 / 0
31.07.2013, 12:00
    #38349899
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
АнатоЛой,

Если СУБД не позволяет использовать [при поиске] индексы - то соединение двух таблиц тоже будет происходить весело.
...
Рейтинг: 0 / 0
31.07.2013, 12:03
    #38349905
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
Кот МатроскинЕсли СУБД не позволяет использовать [при поиске] индексы - то соединение двух таблиц тоже будет происходить весело.
Вы недооцениваете фантазию разработчиков СУБД. Например, в Firebird я как-то наткнулся на очень суровое ограничение размера индексируемого поля, то есть number - запросто, а вот varchar(200) - говорил, слишком большое, в страницу не влазит.
...
Рейтинг: 0 / 0
31.07.2013, 12:24
    #38349953
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
softwarer,

Ну да, мне тоже при чтении топика вспомнились какие-то советы 1996 выпуска про еще тогда Interbase "выносите длинные поля в отдельную таблицу", но я все-таки надеюсь, что все эти макабры давно похоронены в чумной яме.
...
Рейтинг: 0 / 0
01.08.2013, 17:28
    #38351956
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
СержикинЕсть смысл разбития таблицы? Даст ли это какой либо резон?

Изначально таблица выглядела так
Таблица urls
idurlviewsauthorratingstatistik1statistik2statistik3statistik4statistik5statistik6statistik7...1 http://site.ru/o-bloge.html 5129998462541212...2 http://site.ru/kakoi-libo-adres.html 5129998462541212...



В чём эффективность разбивки, не знаю (это тонкий намёк на то, что её нет),
а вот нарушение 1НФ налицо. Оно конечно, ваше дело, как с этим жить.
...
Рейтинг: 0 / 0
01.08.2013, 17:30
    #38351961
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
АнатоЛойСержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.

Это зависит уже очень сильно от СУБД, потому что как правило все СУБД хранят физически такие длинные поля (BLOB/CLOB) отдельно от страниц с основными данными таблицы. Если это так, то нет смысла выносить такие поля в логической структуре БД.
...
Рейтинг: 0 / 0
01.08.2013, 17:32
    #38351965
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
АнатоЛойАнатоЛойСержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.
Поправлю: "Суть выгоды: при поиске по полю url во всей таблице ваша СУБД может вынуждена считывать всю запись. Если в ней нет других полей со статистикой, то объём записи будет меньше - и поиск по url будет производиться быстрее ".

Ну, на самом деле не только и не столько поиск, как чтение и запись.
Поиск, если по индексу, то он в одтельных страницах.
...
Рейтинг: 0 / 0
01.08.2013, 18:00
    #38352008
sphinx_mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
MasterZivСержикинЕсть смысл разбития таблицы? Даст ли это какой либо резон?

Изначально таблица выглядела так
Таблица urls
idurlviewsauthorratingstatistik1statistik2statistik3statistik4statistik5statistik6statistik7...1 http://site.ru/o-bloge.html 5129998462541212...2 http://site.ru/kakoi-libo-adres.html 5129998462541212...
В чём эффективность разбивки, не знаю (это тонкий намёк на то, что её нет),
а вот нарушение 1НФ налицо. Оно конечно, ваше дело, как с этим жить.А с чего бы тут было нарушение именно 1-ой нормальной формы?!
Для 1NF "необходимо и достаточно", чтобы атрибуты были атомарны. И в примере данных это, собственно, наблюдается...
...
Рейтинг: 0 / 0
01.08.2013, 18:27
    #38352033
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
MasterZivАнатоЛойСержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.

Это зависит уже очень сильно от СУБД, потому что как правило все СУБД хранят физически такие длинные поля (BLOB/CLOB) отдельно от страниц с основными данными таблицы. Если это так, то нет смысла выносить такие поля в логической структуре БД.
А для того, чтобы получить ссылку на BLOB/CLOB, не придётся вычитать запись со всеми атрибутами? Или ссылка находится не в записи? :)
...
Рейтинг: 0 / 0
01.08.2013, 18:29
    #38352036
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
MasterZiv
Поправлю: "Суть выгоды: при поиске по полю url во всей таблице ваша СУБД может вынуждена считывать всю запись. Если в ней нет других полей со статистикой, то объём записи будет меньше - и поиск по url будет производиться быстрее ".

Ну, на самом деле не только и не столько поиск, как чтение и запись.
Поиск, если по индексу, то он в отельных страницах.[/quot]

Я же как раз и сказал: АнатоЛойесли в вашей СУБД нет возможности делать поискать по полю с "url" с использованием индекса
...
Рейтинг: 0 / 0
01.08.2013, 18:30
    #38352038
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
Извиняюсь за неправильное форматирование.
...
Рейтинг: 0 / 0
01.08.2013, 19:25
    #38352102
Alexander2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
Если подходить к задаче буквально, то:
становится ясно, что эта злополучная таблица является элеменарной агрегацией юзерских запросов к волшебному сайту http://site.ru;
весьма сомнительно, что на сайте миллион, тысяча или даже "питсот" страниц!? От силы 100 страниц, то есть 100 строк в таблице.
И что...поиск в трех соснах займет много времени?
...
Рейтинг: 0 / 0
02.08.2013, 01:10
    #38352312
Zukora
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивать ли таблицу на части?
ID 1 http://site.ru/ Parent_ID null
id 2 o-bloge.html Parent_ID 1

Типичная древовидная структура.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разбивать ли таблицу на части? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]