Мегабаза и мегавремя выборки

Тема в разделе "Базы данных", создана пользователем artcosmic, 8 ноя 2010.

Модераторы: latteo
  1. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Интересует такой вопрос
    Как спроектировать БД, чтобы при наличии в ней, скажем, миллиарда записей, выборка из нее осуществлялась за минимальное время и с минимальной загрузкой проца?
    Хочу сделать большую базу ключевых слов на MySQL + PHP
     
  2. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    Sphinx тебе в помощь если не каждую секунду обновляется )
     
    artcosmic нравится это.
  3. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Благодарю, похоже - это то, что нужно.
    А если все же каждую секунду обновляться? :)
     
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    а разбить базу на несколько таблиц по каким либо признакам (по заглавной букве, либо по двум первым буквам) не вариант?
     
    artcosmic нравится это.
  5. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Я думал об этом. Хотелось бы услышать проверенные мнения - кто-то уже так делал? Помогло, получилось?
     
  6. steel_HILL

    steel_HILL Постоялец

    Регистр.:
    15 апр 2010
    Сообщения:
    53
    Симпатии:
    14
    Если только ключевики, то зачем тебе мускул?
    Возьми редиску, скорость там просто реактивная - приблизительно 110000 set запросов и 81000 get запросов в секунду на Intel Xeon X3320 2.5Ghz...

    Правда использовать ее на шаред-хостинге не получится - нужен хотя бы VDS
     
  7. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Кхм... Что взять? :)
    Я так думаю, что у меня дело не в количестве запросов, а в скорости одного запроса к бооооольшой базе.
    В общем, все еще в поисках.
     
  8. Phrack

    Phrack

    Регистр.:
    3 ноя 2010
    Сообщения:
    264
    Симпатии:
    38
    редиксу
    [​IMG]

    Redis — это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить ваши данные, вытесняя старые записи новыми, Redis хранит информацию постоянно, таким образом он похож на MemcacheDB.


    http://habrahabr.ru/blogs/webdev/64917/
    читай:)
     
    artcosmic нравится это.
  9. nagual

    nagual Постоялец

    Регистр.:
    17 фев 2009
    Сообщения:
    65
    Симпатии:
    3
    Допустим есть сайт и на него одновременно заходит 10-20 юзеров. Можно сделать страничку чтатической и она благополучно закешиться в нгиксе. Динамические блоки вставить через ssi. Дальше если динамический блок делает выборку из очень большой базы, и эта выборка у всех юзеров похожая то первый скрипт делает запрос и ложит ответ во временную таблицу. Остальные берут оттуда некоторое время.
     
  10. skn78

    skn78 Создатель

    Регистр.:
    14 апр 2007
    Сообщения:
    21
    Симпатии:
    0
    в первую очередь обязательно создать индексные ключи для полей которые используются в выборках.