База данных для поисковиков

docker

Новичок
Originally posted by Silent
Для крупного поисковика и Оракл не подойдет. И вообще ничто не подойдет. Не нужны для поиска стандартные реляционные базы данных, потому что они предназначены для различных операций над различными данными.....
Не согласен! Что пол миллиона программистов, которые пишут новые подходы в реализации баз данных и выпускают новые версии существующих гигантов - зря работают.

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

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: docker
Не согласен!
Дружок, твоё согласие никого особо не беспокоит.

Что пол миллиона программистов, которые пишут новые подходы в реализации баз данных и выпускают новые версии существующих гигантов - зря работают.
не зря, но

Уж наверное они уже дальше продвинулись, чем продвинется какой нибудь Яндекс, если он решит для себя сейчас новую базу моделировать, заточенную по только его задачи.
дружок, вот тебе две темы для медитации:
1) ежели поисковик можно создать, используя готовые решения, то почему поисковиков так мало?
2) в чём преимущество реляционных СУБД по сравнению с другими? (подсказка: не в скорости работы).
 

Silent

Новичок
> которые пишут новые подходы в реализации баз данных

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

Demiurg

Guest
А еще базы данных не применяют для написния драйверов. Тоже наверно зря. Ведь столько много было сделано разработчиками бд за последнее время...
 

Yuriy_S

-=PHP-Club=-
когда-то я поднимал уже этот вопрос....
у меня был поисковик (щас я его временно прибил).
Размер базы перешел за пол гига...
MySQL начал заметно подтормаживать уже после 350-400 Мб, поиск по БД занимал 5-6 секунд.
Индексы были расставлены правильно.
Так что использовать MySQL для крупных поисковиков - это не самое подходящее решение. Если будет 15-20 запросов одновременно - то сервер либо ляжет, либо время поиска будет расти в десятки раз...
 

Фанат

oncle terrible
Команда форума
Юрочка. Не стоило тебе влезать в эту тему.
Вот за это
Индексы были расставлены правильно.
тебя сейчас съедят.
И поделом.
Не надо путать свои кривые руки и реальные ограничения базы.
 

Demiurg

Guest
>Индексы были расставлены правильно.
ты бы еще написал, что правильно написал программу, а она глючит. Помоему тема себя исчерпала.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Естественно, дальше обсуждать смысла нет, все знают, что мыскль не может работать медленно. :D

а то щас у присутствующих когнитивный диссонанс разовьётся. :D
 

Фанат

oncle terrible
Команда форума
А теперь включим телепатию, которой мы все так гордимся, и поддержим Крома, который дал великолепный ответ на вопрос, исходя из того, как он был сформулирован.
В принципе, для такого человека абсолютно все равно, на чем делать. Мыскль - далеко не худший вариант, учитывая его обкатанность. Человек хотя бы узнает, что такое поисковые системы и базы данных и сможет нормально формулировать свои вопросы. Опять же, для проекта "а вот я тут придумал...", мыскль - идеальный вариант.

О том, что постгре - ваш кумир, мы все в курсе.
 

Silent

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

Линк

Guest
<?
include("imho.inc");
?>

(скромно влезает) делая поиск по сайту с парой сотен документов, я тоже думал о полнотекстовых индексах.. Но потом пришел к более простому варианту) (так сделано у многих поисковиков, но это занимает много места) Создаются образы документов в виде записей: документ - слово - сколько раз встретилось.. ну а дальше можно ввести порядка десяти факторов (вес слова, целенаправленность документа итд) и все это высчитываеться на основе этих образов. Индексы тут нужны, но не полнотекстовые)) Так что можно обойтись мускулем.
 

Alexandre

PHPПенсионер
я думаю, что автору поста нужно написать в Яндекс и спросить какую БД они используют.
Oracle - монстр, который позволяет хранить много информации. Несмотря на ряд преимуществ - У него есть недостаток - скорость.
Мускул - может непотянуть. Покрайней мере фрее версия.
SQL Server - это отдельная песня.
есть другие экзотические базы типа DB2, Informix, Cash - с ними я не знаком
Скорее всего прав Silent, который утверждает, что для специфичных операций необходимо создовать свой продукт (БД). Тем более, если учесть что Яндекс использует распределенный параллельный поиск.
 

Фанат

oncle terrible
Команда форума
Alexandre, ты не поверишь, но писать никуда не надо.
Надо просто разуть глаза и зайти на сайт ямблера. Или рамдекса. И прочесть. То есть, обладать даже не минимальными навыками работы в интернете, а просто умственным развитием на уровне любознательного пятиклассника.

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

перечислять стандартные субд в ответ на этот вопрос - бессмысленно. Ни одна из них рядом не стояла с задачами поисковых систем.

в этом смысле и мое замечание про мыскль смотрится не очень умно.

Я думаю, всем стоит перечитать первоначальный вопрос и прикрыть тему.
 

Линк

Guest
и вообще... когда автор поста реализует логику поиска типа логики yandex или rambler, вопрос о СУБД для него отпадет сам собой)))

а Тренироваться можно хоть на текстовых файлах...
 

Demiurg

Guest
>Oracle - монстр, который позволяет хранить много
>информации. Несмотря на ряд преимуществ - У него есть
>недостаток - скорость.

mysql - легкий и растространеный, но в нем нет многих вич
постгрес - более продвинутый по фичам, чем mysql, но его любит sad spirit
ms sql - тоже судб, но от билла гейтса
db2 - ibm - это круто, но они же делают железки, нафиг им судб.
access - см ms sql, и разделить на 10.

остаются только текстовые фалы.
 

Crazy

Developer
Автор оригинала: Demiurg
db2 - ibm - это круто, но они же делают железки, нафиг им судб.
Как ни странно, IBM -- один из ведущих разработчиков ПО. По той причине, что они стараются поставлять не голое железо, а комплексные решения. Что до DB/2, то это СУБД того же класса, что и продукт от Oracle.

access - см ms sql, и разделить на 10.
Есть мнение, что MS SQL и MS Access куплены у разных разработчиков и до сих пор не имеют существенных общих частей. Проверить, понятно, сложно. :)
 

Demiurg

Guest
> Что до DB/2, то это СУБД того же класса, что и продукт от Oracle.
класс - это мнение давольно субьективное, имхо. Для меня mssql того же класса, что и mssql, я в обоих мало что принмаю.
 

Crazy

Developer
Неб Фанат... Единственная ключевая фраза топика -- про то, что здоровые люди поисковые системы на реляционных БД не делают. Все остальное -- здоровый безответственный треп. :)
 
Сверху