[Moscow.pm] PHP-шник :)

Dmitry Simonov dsimonov на gmail.com
Чт Фев 21 13:50:20 PST 2013


Предлагаю решить всем задачку, с которой тру-пехапешники расправились
сходу. Есть таблица в миллиард записей и 100+ колонок (c1, c2, c3...).
Таблица разумеется постоянно растёт и апдейтится.

Требуется придумать решение, которое позволит в таблице делать выборки с
динамическими условиями (то есть само условие определяется в рантайме, а не
на этапе компиляции) вида: "( c1 = 100 and c2 > $a and c3 = 'some string' )
|| ( ... and ... and ... ) || ... ". Скажу сразу, - решение "в лоб" просто
составлять нужные правила для sql-запросов на постгре дают на таблице в
миллион записей результаты сильно больше 0.1 секунды. Монгу тоже сразу
выкидывать (неэффекттивна в шардированном виде и (или) если объём данных не
помещается в оперативку).

Для тех, кому жизнь кажется малиной усугублю - для продакшн-проекта
работать надо с числом таблицу 100+ и нагрузка на выборки с разных таблиц
разная, хотя частично и поддаётся некоторой систематизации (недостаточной,
чтобы её просто захардкодить).



---
Dmitriy V. Simonov,
Perl & Python programmer


2013/2/21 Ivan Petrov <i.petro.77.00 на gmail.com>

> > А вы действительно считаете что фирма готова платить 250К за
> <html><body><?
> > echo("Vasya"); ?></bady></html> (/bady - намеренная ошибка).
>
> вооот.
> это и есть продемонстрированная разница между профессиями PHP (вообще)
> программист и руководитель (карьерный рост). и вот тот техлид который
> за 250К ни строчки кода уже не пишет.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20130222/473388d8/attachment.html>


Подробная информация о списке рассылки Moscow-pm