?

Log in

No account? Create an account

Помощь зала...

Вот интересная задача:

Есть таблица на сотни тысяч записей.
Нужно вытянуть из нее 20 случайных записей.
Проблема в том, что подобный запрос должен происходить при заходе пользователя на ресурс или обновлении страницы. При этом хочется, чтобы ресурс держал сотню заходов в секунду. При этом, конечно, хочется использовать кеширование.
Операции добавления намного будут сравнительно редки по сравнению с выборкой.


Пути решения:
Первый вариант:
добавить к каждой записи уникальный номер, всюду плотный (т.е. без дырок) и генерить в скрипте 20 случайных чисел. Минусы такого подхода в том, что не получится использовать кеширование (без извратов) и к тому же генератор случайностей в PHP-не очень...

Второй вариант:
генерить очередь (т.е. последовательность ID) и выбирать их оттуда по мере необходимости. Здесь возникает вопрос её генерации и ситуации, когда она закончится.

Третив вариант: ...


Есть у кого-нибудь идеи?

Говнокод — почувствуй себя ассенизатором!

Вожусь на работе с сайтом. Это нечто! Маль того, что все объекты системы наследуют от объекта error (ага, вся система — это набор ошибок), так ещё и из базы объекты вытаскивается своими нестатическими методами (вынос мозга).

При этом, все возможные объекты инстанцируются в начале скрипта, вне зависимости от того, нужны они или нет.

Недавно обнаружил, что параметры между объектами и методами передаются через массив $_GETкуда они попадают прямым присваиванием внутри скрипта!

Вот такие перлы на PHP...

А еще, эти мудрые люди положили в корень .htaccess с настройкой error_reporting = E_ALL

Положить — положили, а сервак рестартовать забыли... А когда мастерхост рестартовал сервера, там таакое полезло...

А сегодня ещё одна проблема — если писать нормальный код, то в существующую систему его вмонтировать можно только весьма странным способом, поскольку хреновая архитектура превращается в никакую (а на рефакторинг времени нет...).

Mar. 16th, 2011

Сегодня проанализировал свою предыдущую работу.

Последовательность действий была такая:

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

И потом мне говорят, что ЭТО плохо работает... Если бы это был шашлык, то...:

Съели мясо -> попытались снять мясо с шампура и обломались -> Попытались зажарить мясо и обожглись -> попытались нанизать мясо на шампур и укололись -> выпили маринад

В случае шашлыка, результаты более плачевны...
Вчера провел нагрузочные тессты трёх сделаных мной сайтов. Результаты интересные.

www.loin.ru: старый сервак, php4, smarty
www.emashov.com: ник-хост, symfony,
www.scanexpert.org: новый сервак, drupal

Все три сайта падают при нагрузке в 30 поситителей. Вернее, не падают, а начинают отдавать страницу мееддллеенноо.

loin.ru - 14s
emashov.com - 10.4s
scanexpert - 8.6s

причем, такое ощущение, что основная проблема, это отдача статики - css и js

UPD: новый loin.ru - 3.4s
UPD2: лимитирующим оказывается jQuery

Dec. 5th, 2010

Переволок сайт на новый сервак и новый движек!
Всвязи с этим, в жж временно отвалились все фотографии. Постепенно буду восстанавливать.
Но не сегодня, ибо и так всю ночь не спал.

Зато куча позитива и немного экспы!

Apr. 28th, 2009

Теперь я знаю, как можно написать CSS так, чтобы его нельзя было изменить (поправить/модифицировать/применить).

PS: Руки отрывать таким сайтоваятелям...