[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оптимизация 1или 2 таблицы
Миша
Сейчас у меня 2 таблицы, в первой регионы РФ, во второй города, в скрипте делаю объединение.

А если сделать 1 таблицу, регионы добавлять с типом ENUM

Как лучше??

_____________
Принимаю заказы, писать в ЛС
Миша
unsure.gif

_____________
Принимаю заказы, писать в ЛС
stump
Чтобы работало.

_____________
Трус не играет в хокей
kaww
Цитата (Медведь @ 27.06.2015 - 16:30)
Как лучше??

будет лучше почитать хотя бы Википедию, чтобы не задаваться подобными вопросами https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%...%80%D0%BC%D0%B0
S.Chushkin
Не слушайте злых дядек, ибо всё зависит от конкретики.
Но в любом случае, до 500-1000 запросов в секунду пофиг, будет у вас нормализованная или нет структура. Делайте как Вам удобнее.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Миша
Цитата (S.Chushkin @ 28.06.2015 - 00:39)
Не слушайте злых дядек, ибо всё зависит от конкретики.
Но в любом случае, до 500-1000 запросов в секунду пофиг, будет у вас нормализованная или нет структура. Делайте как Вам удобнее.

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

Ну а на самом деле в таблице с городами сейчас хранится ид региона, может на Enum сделать? Тогда потом и объединять эти таблицы не прийдётся + как сделать индекс для разных таблиц.

Может кто то сталкивался с подобным или даже тестировал. Вот два варианта, какой лучше?



_____________
Принимаю заказы, писать в ЛС
sergeiss
Цитата (S.Chushkin @ 28.06.2015 - 00:39)
Делайте как Вам удобнее.

Есть такая присказка: "старайся делать хорошо, а плохо само получится" smile.gif То есть, надо все-таки стремиться к лучшему.

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

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

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

user posted image
S.Chushkin
Цитата
А может я...

Ещё раз: зависит от конкретики. От того, что Вы хотите получить на самом деле.
Если про сферического коня в вакууме, то...
Нормализованная: универсальнее, гибче, компактнее, понятнее, проще в поддержке/развитии. Как правило выборка медленнее.
Денормализованная: жёстче, объёмнее, трудна в понимании, сложнее в поддержке. Как правило выборка быстрее.
Но...
Когда у Вас будет больше (или заметно больше) 1000 запросов/сек, Вы всё равно будете использовать кеш. Т.е. опять будет пофиг, нормализованная или денормализованная.

Если у Вас сейчас тормозит в этом месте (> 0.01 сек), просто поставьте sql_cache в запросе и проблема исчезнет на некоторое время, ибо эти таблицы очень редко изменяются, по их сути (движок mysql должен быть настроен для нормального кеширования, естественно.)


Как-то так...

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (sergeiss @ 28.06.2015 - 02:10)
Есть такая присказка: "старайся делать хорошо, а плохо само получится" smile.gif То есть, надо все-таки стремиться к лучшему.

Это само собой.
Но есть и другая народная мудрость, - "Всё хорошо, что в норму". smile.gif

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
sergeiss
Цитата (S.Chushkin @ 28.06.2015 - 02:18)
"Всё хорошо, что в норму".

"Всё хорошо в меру" (с) В т.ч. и упрощение тоже хорошо, когда не сверх меры.

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

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

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

user posted image
Valick
Цитата (S.Chushkin @ 28.06.2015 - 01:16)
Денормализованная: жёстче, объёмнее, трудна в понимании, сложнее в поддержке. Как правило выборка быстрее.

А вы вообще в курсе зачем нужна нормализация? Для того что бы сделать выборку медленнее? А вы в курсе, что несоблюдение первого закона ставить крест на возможности нормально работать с данными на уровне СУРБД? Нахрен вам вообще в таком случае БД?
Ещё вчера хотел написать вам замечание, но оно получилось из одних матерных слов, поэтому стёр все нафиг. Сам себя отмодерировал так сказать.

_____________
Стимулятор ~yoomoney - 41001303250491
S.Chushkin
Valick, всё зависит от конкретики. (скоро мазоль на языке будет)
В некоторых случаях денормализация вполне приемлема и работать с ними вполне нормально, в т.ч. на "на уровне СУРБД".

И потом, что считать денормализаций. Например, если подходить строго к проектированию, то
Sex  enum('Мужчина','Женщина')
Name varchar(255)

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

Есть примеры, когда денормализация архитектуры просто необходима (Обычно, когда десятки миллионов записей и требуется макс.скорость выборки. При тысячах пофиг конечно.). Скоростя могут отличатся на порядок и более.

А так да, в 99%, или скорее 99+%, случаев должна использоваться нормальная форма. Тут спору нет.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Alchemist
Прошу прощения, но почему это денормализация ?
S.Chushkin
Вы про что?

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Alchemist
Цитата (S.Chushkin @ 28.06.2015 - 10:20)
Sex  enum('Мужчина','Женщина')


Вот про это
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.