Задачка

Discussion in 'PHP' started by @nt0n, 14 Nov 2011.

  1. @nt0n

    @nt0n New Member

    Joined:
    2 Apr 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Вот например в базе имеется таблица телефонных звонков (20 полей, 15 индексов), но вот незадача: в ней миллиард записей и выборки по ней идут крайне медленно.
    Изучив логи, видно, что в 99% случаев пользователей интересуют звонки только за последний месяц (это всего 50 миллионов записей), а большинство запросов над этой таблицей оперируют также данными из других таблиц существенно меньшего размера.
    Необходимо предложить способ увеличения скорости работы при работе с этой таблицей, не требующий изменений в запросах, с ней работающих как минимум для одной из следующих СУБД: MSSQL, Mysql, PostgreSQL, мыслей вроде много но все вроде не те... :mad:

    И какую СУБД лучше использовать для хранения такого рода данных?
     
  2. Mr.Snuffer

    Mr.Snuffer Member

    Joined:
    2 Jul 2010
    Messages:
    140
    Likes Received:
    13
    Reputations:
    0
    1 и единственное что приходит в голову.
    Но фактически скорость увеличится.

    Можно разбить базу вообще на куски по месяцам например.

    И при запросе, определять к какому куску нужно подсоединиться и выполнять.
     
  3. Mr.Snuffer

    Mr.Snuffer Member

    Joined:
    2 Jul 2010
    Messages:
    140
    Likes Received:
    13
    Reputations:
    0
    А вот с отсутствием изменений в запросе это проблема.
    Хотя туту будет не в запросе изменение, а в коде.
    Но короче я так понимаю нужны только способы, которые позволят увеличить производительность бд.

    Мне кажется без изменений кода не обойдётся в любом случае
     
  4. @nt0n

    @nt0n New Member

    Joined:
    2 Apr 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    идея тоже была разбить эту таблицу по месяцам, но вот фиг знает будет ли это удовлетворять условию задачи?
     
  5. Todin

    Todin Member

    Joined:
    28 Jan 2011
    Messages:
    47
    Likes Received:
    7
    Reputations:
    0
    можно дублировать последние 2 месяца в отдельной таблице
     
  6. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    Если выбирать между Mysql и PostgreSql, то однозначно постгрес