Будете смеяться...

Тема в разделе "Delphi - Базы данных", создана пользователем simon, 14 авг 2005.

Статус темы:
Закрыта.
  1. simon

    simon Гость

    Вроде далеко уже не новичок, но, хоть убейте, не могу разобраться в понятиях ИНДЕКСЫ и КЛЮЧИ. Единственное, знаю увеличивают эффективность и скорость обращения к БД. Сколько читал про них, пока читаю - все понятно (каждое словечко :p ) а классифицировать структуризировать и применить все это, БЛИН, не могу.
    Люди раздуплите, плз.
    1. ИНДЕКСЫ и КЛЮЧИ. что это?
    2. Они вообще имеют че-нить общее, или чем они различаются?
    3. Еще меня интересуют Primary, Uniqe...
    4. Какие поля индексировать
    а)Необходимо
    б)Стоит
    в)Эффективно
    г)Бесполезно
    5. Есть ли минусы в их использовании (например, TQuery не сможет быть LiveRequest, али че-нить в этом духе).
    6. Кие-нить комментарии из личного опыта.

    Люди, от хороших ссылок я конечно не откажусь, но огромная просьба, кто сможет, ответьте на данные пункты с точки зрения своей модели понимания, плз.
    Просто, приложения давно уже не "телефонная книга на 10 номеров", а этот момент как-то упустил.
    ВЫРУЧАЙТЕ...

    Зарание спасибо.
     
  2. ????

    ???? Гость

    Для: simon
    Ты пердлагаешь написать маленькую книжечку? :p
     
  3. Barmutik

    Barmutik Гость

    Странно что если у Вас есть опыт и Вы путаетесь в базовых понятиях без которых трудно представить себе эффективную работу с БД.

    1. Индексы - специальные структуры базы данных, которые используются для увеличения производительности(сортировки, скорости выборки, слияния и т.д.)
    Ключи - (Primary Key, Foreign Key) - основопологающее понятие реляционных базы данных, используются для поддержания ссылочной целостности БД, для создания уникальных идентификаторов и т.д.

    2. Индексы и Ключи - абсолютно разные вещи. В частном случае по Primary Key почти всегда строится уникальный индекс для поддержания уникальности значений и увеличения скорости операций с таблицами.

    3. Primary Key - первичный ключ, свойство Unqiue - значит что могут находится тоьлко уникальные значения (одинаковые не допускаются)

    4.
    а. Зависит от структуры БД. Как правило по всем первичным ключам создаются индексы. Некоторые сервера БД делают их автоматически.
    б. Стоит те на которые ложится большая часть вычислительной нагрузки при выполнении запросов.
    в. Смотри ответ на пукт б.
    г. Текстовую информацию (если сервер БД позхволяет делать по ним индексы)

    5. Одно к другому не имеет никакого отношения. LiveRequest означает что бы при открытии курсора система попыталась вернуть его редактируемым не более того.

    6. Из лично го опыта скажу что наличие грамотно построенных индексов позволяет ускорить работу на 30-40%. В зависимости от структуры и размера данных в БД. Существует много литераутры по оптимизации БД.

    Также хочется отметить что НЕ верно нагромождённые индексы очень часто замедляют работу системы и ещё более ухудшают её показатели производительности.

    Насчёт литературы.. чтоит определится какой конкретно сервер БД Вам требуется и уже под него искать литературу...
     
Статус темы:
Закрыта.

Поделиться этой страницей