powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разбивать ли таблицу на части?
16 сообщений из 16, страница 1 из 1
Разбивать ли таблицу на части?
    #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
Разбивать ли таблицу на части?
    #38349477
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сержикин,
судя по цитате
автортоесть обращаясь по адресу http://site.ru/o-bloge.html в таблице производится поиск по URL и формируется страница с этими самыми данными
ответ будет: действительно, "нахрена козе баян"?! Это же динамически создаваемая таблица.
...
Рейтинг: 0 / 0
Разбивать ли таблицу на части?
    #38349686
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.
...
Рейтинг: 0 / 0
Разбивать ли таблицу на части?
    #38349693
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойСержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.
Поправлю: "Суть выгоды: при поиске по полю url во всей таблице ваша СУБД может вынуждена считывать всю запись. Если в ней нет других полей со статистикой, то объём записи будет меньше - и поиск по url будет производиться быстрее ".
...
Рейтинг: 0 / 0
Разбивать ли таблицу на части?
    #38349899
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

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

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

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



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

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

Ну, на самом деле не только и не столько поиск, как чтение и запись.
Поиск, если по индексу, то он в одтельных страницах.
...
Рейтинг: 0 / 0
Разбивать ли таблицу на части?
    #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
Разбивать ли таблицу на части?
    #38352033
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivАнатоЛойСержикин, вынесении "длинного" поля в отдельную таблицу может оказаться выгодным по производительности. Это зависит от объёмов таблицы, и если в вашей СУБД нет возможности делать поискать по полю с url с использованием индекса. Суть выгоды: при поиске по полю url СУБД нет небходимости считывать всю запись из БД.

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

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

Я же как раз и сказал: АнатоЛойесли в вашей СУБД нет возможности делать поискать по полю с "url" с использованием индекса
...
Рейтинг: 0 / 0
Разбивать ли таблицу на части?
    #38352038
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь за неправильное форматирование.
...
Рейтинг: 0 / 0
Разбивать ли таблицу на части?
    #38352102
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если подходить к задаче буквально, то:
становится ясно, что эта злополучная таблица является элеменарной агрегацией юзерских запросов к волшебному сайту http://site.ru;
весьма сомнительно, что на сайте миллион, тысяча или даже "питсот" страниц!? От силы 100 страниц, то есть 100 строк в таблице.
И что...поиск в трех соснах займет много времени?
...
Рейтинг: 0 / 0
Разбивать ли таблицу на части?
    #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]