За последние 24 часа нас посетили 19599 программистов и 1603 робота. Сейчас ищет 881 программист ...

Посоветуйте БД

Тема в разделе "PHP и базы данных", создана пользователем SniperLabs, 22 апр 2014.

  1. SniperLabs

    SniperLabs Новичок

    С нами с:
    22 апр 2014
    Сообщения:
    2
    Симпатии:
    0
    Всем привет. Имеется скрипт, который каждые 2 минуты делает выборку в довольно большую БД (20млн строк). На данный момент MySQL с такой задачей не справляется (иногда просто ложится из за параллельно висящих соединений, т.к. запрос осуществляется очень долго - бывает до 84 сек.).

    Собственно, вопрос в том, какую БД можно использовать в моём случае, если требуется выборка по 2-м параметрам (точнее полям из БД, например: category_id и type_id) и выбирать требуется до 5 тысяч записей из этой таблицы.

    С другими БД не работал, желательно, чтобы язык запросов был максимально схож. Заранее благодарю за ответ.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    В этой ситуации вы имеете большой объем данных, с которым не справляется в приемлемый срок ваше железо. Кроме железа, большое значение имеет движок таблиц (используйте MyISAM вместо InnoDB) и наличие индексов на полях, по которым происходит селект (индексы должны быть). Система управления базой в контексте селекта не так важна.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    +1
    в конечном счете, критичный параметр — хватает ли оперативы. потому что выгрузка временных данных на диск приводит к тормозам. и наоборот, даже "кривой" запрос будет нормально кеширован, если оперативки в избытке.
    вывод:
    - оптимизировать запросы;
    - добавлять оперативки.

    Добавлено спустя 4 минуты 42 секунды:
    вот насчет выбора MyISAM/InnoDB не всё очевидно. надо посмотреть как часто блокируются нужные таблицы. блокировки в этих движках работают по разному.

    во избежание блокировок надо стараться разделять "статистические" таблицы и оперативные. пополнять статистику по расписанию.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    еще стоит наверное дефолтные настроечки поменять на ченить по-круче, а то он так и будет кушать 300 метров и не жаловаться.
    может и менять ничего не понадобится