За последние 24 часа нас посетили 24544 программиста и 1800 роботов. Сейчас ищут 944 программиста ...

Индексы в PostgreSQL

Тема в разделе "PHP и базы данных", создана пользователем sir Genry, 4 окт 2010.

  1. sir Genry

    sir Genry Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Новосибирск
    Есть составной уникальный ключ: (DocNo BIGINT, DocDate DATE)
    Делаю: "DocDate" BETWEEN 'дата_начала' AND 'дата_окончания'
    Вопрос: нужно ли мне создавать еще один индекс на DocDate, или нынешний постгрес уже умеет использовать составные ключи?
     
  2. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
  3. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Если в запросе не указано значение DocNo, то нужно, ибо, если первая часть составного индекса неизвестна, использовать вторую невозможно. По крайней мере в мускуле это так.
     
  4. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    MiksIr
    Он же уникальный
     
  5. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    А, про уникальный упустил. Да, лучше всего делать отдельно по DocDate еще один - правая часть составного если и будет использована, но весьма неэффективно.
     
  6. sir Genry

    sir Genry Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Новосибирск
    MiksIr
    Ну я так и предполагал и соответсвенно сделал :)