Re: Большая нагрузка на сервер

cmd, это просто пипец.

но я прав?

Re: Большая нагрузка на сервер

cmd пишет:

но я прав?


Думаю вот и ответ:

Думаю - ни один.

Затея интересная, но муторная... вы возьметесь реализовывать? ))

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Большая нагрузка на сервер

Возможно. Если это будет полезно, то почти наверняка. Смущает тот факт, что разрастание переменных $keywords $categories тоже не способствует быстродействию, т.е. возможно использование дополнительной таблицы лучше... Что скажешь?

1 минуту и 44 секунды спустя:

P.S. Я просто у Тима Конверса как раз читаю главу про архитектуру БД, вот и призадумался.

Отредактировано cmd (13 Jun 2011 20:54:45)

Re: Большая нагрузка на сервер

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

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

105

Re: Большая нагрузка на сервер

cmd, ваша идея наоборот всё утяжелит. Здесь можно даже и не пробовать, всё и так интуитивно понятно. Рассмотрим пример:

В базе 1000 новостей, 850 из них - в категории "Новости" (категория 1). Следовательно, в таблице categories в записи cat_id=1 поле news будет содержать 850 номеров новостей, разделённых (например) запятыми. Прикиньте размер этого поля и время, которое понадобится хотя бы на одну операцию с этим полем?!!

Так что "перелопачивание" всей таблицы - гораздо более лёгкая операция. Тем более, что запрос не такой уж сложный и объёмный, как вам кажется. Тем более, что это нужно не так часто, как получение других данных из таблиц categories и keywords (например, имён).

ИдеяMiksar'а, ещё более проигрышна, напоминаю:

сделать еще таблицу в которой будут 2 поля - номер категории и номер новости

так как поля category и keywords уже есть в таблице news!!! Зачем создавать ещё одну таблицу и тратить на неё лишние запросы?

Re: Большая нагрузка на сервер

Это не моя идея. А советы бывалых.
Например в интернет магазинах так делают сплошь и рядом.
Есть база с товаром - там id прописаны естественно и сам товар.
Есть таблица с категоиями - id категории и описание категории
И таблица с ключами. - номера id-шников новостей и категорий к которым они относятся.
Делается сложный запрос. По запросу к таблице ключей по ИД новости - мы получаем ИД категории.
Так же запросив категорию из таблицы ключей - мы получим все новости относящиеся к этой категории.
А так как эта таблица более легкая - то и скорость более быстрая. (ну это например когда мы просто хотим номера узнать...)

Вот и смотрите - где тут проигрыш, а где выигрыш...

5 минут и 12 секунд спустя:

Да. Вот,ANT-Soft, как Вы считаете запрос с параметром

WHERE RAND()

Быстрее чем запрос с параметром

$count = "тут запрос в базу на подсчет количества содержимого в таблице";
LIMIT 0, ".rand(1, $count)."

???

Ну и дабы не томить - при малом объеме инфы - до 1000 строк - быстрее первый вариант
до 10000 - второй незначительно выигрывает
выше 10000 - второй выигрывает в разы.

Так что даже 2 запроса - не всегда плохо wink

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Большая нагрузка на сервер

ANT-Soft был прав. Проверил - толку никакого.