BoyStav

BoyStav
Рейтинг
182
Регистрация
10.11.2006
bearman:
neolord, кеш лучше еще прикрутить.

насчет деревьев в субд я тоже думаю гон.

реальне хорошо - 64байтная страка - сумма хешей хоста и урла. как уникальное или примари делаем и получаем нее**кую скорость

на строковом ключе н...я скорость это фантастика, также как и на 64 байтном ключе.

neolord:
Я не пойму, а дерево вы где будете хранить, и зачем.
База и так кеширует запросы, ваш кеш только лишнее место пожрет.

И совсем не пойму зачем хешировать урл. Он и так уникальный. Выиграть какие то спички на сравнении строки короткой длины? Проще тогда делать индекс по хосту - он то фиксированной длины. А у хоста в большинстве случаев не так много урлов. Но я по прежнему не понимаю зачем все это, если это все берет на себя субд, и думаю, что там перфоманс получше чем у любых самопальных костылей

хранить естественно в оперативной памяти иначе смысла кеша нет никакого.

выборка из СУБД никогда не сравниться по скорости с выборкой из правильно построенного кеша.

neolord:
MySQL опенсорсный, карты вам в руки =)

Зачем вводить хеши в базе для "кеша" в приложении? В базе есть PK, этого достаточно. А имена файлов с кешем - эт хоть обхешируйся, хотя тоже непонятно назначение. Можно применять и менее дорогостоящие функции - урл сам по себе уникален.

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

1) получили запрос на ПР для url

2) проверили дерево на надичие hash(url)

3) не нашли в дереве, берем из бызы выбюорку по hesh(url)

4) втыкаем результат выборки в дерево

а делать кеш с ключем в виде строки это равнозначно моментальному выстрелу в висок.

neolord:
Вот это опус. во первых бинарных деревьев там нет и никогда не было - это самая объемистая из всех древовидных структур. Почти все известные мне субд используют Б-деревья, глубина которых значительно меньше (нет, неправильно, вот так - ЗНАЧИИИИИТЕЛЬНО меньше). Кроме того, эти хеши никому нахрен не уперлись, когда над полем висит индекс. СУБД автоматически генерирует к индексному дереву еще и закрытое хеширование и сама использует хеш-доступ. Ваши текстовые поля ей только мешать будут. Вообще говоря, делать два уникальных поля в одной таблице - это высшая степень фимоза головного мозга. Вы думаете Primary key просто так называется праймари? Поиск по числу то еще быстрее чем по текстовому ключу, ага? ;)

bearman, ну тебя то куда понесло, а? =)

ЗЫ. Когда вижу этот ник, всегда вспоминаю сауспарк : "It's Manbearpig. Half a man, half a bear and half a pig".

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

далее никто не предлагал хранить хеш ключи как строки, это был бы верх идеотизма на мой взгляд.

далее наличие хешей значительно облегчит построение кеша в приложении.

гопнеги на улицах достали так еще и в сеть лезут, тьфу...

Zexh:
Ссылку на песню "Лох - это судьба" в интернете найдешь самостоятельно.
Удачи.

думается после этого поста, 99% потенциальных клиентов даже не поинтересуются товаром.

bearman:
думаю что в бд не все так глупо)))

что значит глупо? это бинарные деревья и поиск с 32х битным ключом будет всегда значительна быстрее поиска с 128 битным.

bearman:
ну я могу предоложить что мд5 даст разброс побольше, чем какой нить срс32

да но для поиска значения по ключу крк 32 надо 32 шага, а по мд5 128.

bearman:
и какая альтернатива для 10 клн записей чтобы значения хеша не пересеклись? просто интересно.

а зачем им не пересекаться? пусть пересекаются, после пересечения их отсеять по url.

ведь MD5 тоже допускает пересечение, следовательно всеравно придется делать комбинированный индекс с url

Раздули из мухи слона...

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

Темболее что это в любом случае повлияет на вставку, а не на выборку!

Я бы не использовал МД5 из за того, что он медленный и длинный, есть более короткие альтернативы.

И так нужно:

1) БД: id, hash, url, pr

2) Кеш в общей памяти с часто используемыми данными.

это ВСЕ!

Всего: 1113