powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / правильный подход к индексам
16 сообщений из 16, страница 1 из 1
правильный подход к индексам
    #38386162
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет

как-то не слишком углублялся в теоретическое обоснование использования индексов, но время пришло...

насколько правильна следующая мысль = вывод о создании тех или иных индексов зависит от потенциально ожидаемых запросов в конкретной таблице

типа ход мыслей такой: в данной таблице В ОСНОВНОМ я буду искать так-то и так-то, поэтому создам индексы на такие-то поля

p.s. ну и в продолжение: снабдить таблицу индексами на все случаи жизни явно не получится?

народ, помогите с разжевыванием
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386173
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В целом все правильно.
Еще (помимо ускорения выборки) индекс создаются (иногда неявно) для обеспечения работы ключей и констрейнтов - для первичных, уникальных и внешних ключей.

Кстати, бывает, что удается снабдить таблицу индексами на все случаи жизни :)
Например, когда полей в этой таблице всего два.
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386183
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЕще (помимо ускорения выборки) индекс создаются (иногда неявно) для обеспечения работы ключей и констрейнтов - для первичных, уникальных и внешних ключей. оооо! констрейнты - это совершенно не знакомо

miksoftКстати, бывает, что удается снабдить таблицу индексами на все случаи жизни :) Например, когда полей в этой таблице всего два. такое разве бывает?

такой вот вопрос: есть таблица в которой лежат статьи, размер статьи обычно около 2500 знаков, тип поля - longtext, записей совсем мало - 140
насколько облегчит/усложнит создание по этому полю FULLTEXT KEY ?
я уже попробовал и протестировал - скорость поиска по запросу
Код: plsql
1.
SELECT * FROM `news_1` WHERE `content` LIKE '%колба%'


снизилась с 0.0103 sec до 0.0020 sec - в 5 раз
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386185
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поиск по фултексту производится с помощью оператора match ... against ..., а не like.
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386189
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirпоиск по фултексту производится с помощью оператора match ... against ..., а не like.абсолютно согласен
но мне важно было понять разницу во времени поиска - поэтому неоптимальный подход только подчеркнул результаты
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386190
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboymiksoftКстати, бывает, что удается снабдить таблицу индексами на все случаи жизни :) Например, когда полей в этой таблице всего два. такое разве бывает?"такое" - это таблица из двух полей?
Бывает. В моем случае это была таблица-связка для отношения многие-ко-многим. Там было два индекса - для первичного ключа из обоих полей и просто индекс из тех же двух полей в обратном порядке.
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386193
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboyподчеркнул результатыВы уверены, что не нарвались на какое-нибудь кэширование?
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386194
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
параллельно читаю статью и там есть такая вот мысль = MySQL сам построит индексы по полю, если при объявлении структуры таблицы мы зададим полю уникальность UNIQUE, говорящую о том, что данное поле не может хранить два одинаковых значения

это так? и в чем кардинальное отличие индекса UNIQUE от FULLTEXT ?
по-идее ведь содержание статьи всегда уникально как последовательность символов
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386197
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftbuyboyподчеркнул результатыВы уверены, что не нарвались на какое-нибудь кэширование?ммммм...
не думал на эту тему...
просто создал в денвере на локалхосте две идентичные таблицы: одна с фуллтекст индексом, вторая - без него
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386199
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboyчитаю статьюЧитайте лучше документацию:
Optimization and Indexes .
CREATE INDEX Syntax
CREATE INDEX SyntaxA UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if you try to add a new row with a key value that matches an existing row. For all engines, a UNIQUE index permits multiple NULL values for columns that can contain NULL. If you specify a prefix value for a column in a UNIQUE index, the column values must be unique within the prefix.

FULLTEXT indexes are supported only for MyISAM tables and can include only CHAR, VARCHAR, and TEXT columns. Indexing always happens over the entire column; column prefix indexing is not supported and any prefix length is ignored if specified. See Section 12.9, “Full-Text Search Functions”, for details of operation.
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386212
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirпоиск по фултексту производится с помощью оператора match ... against ..., а не like.
поиск с помощью запроса
Код: plsql
1.
SELECT * FROM `news_3` WHERE MATCH (`content`) AGAINST (' колба*' IN BOOLEAN MODE)

дал еще лучший результат = 0.0015 sec
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386231
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboy,

ну так ясное дело, ведь в нём фултекст индекс использовался, в отличие от предыдущего
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386288
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько правильна следующая мысль = вывод о создании тех или иных индексов зависит от потенциально ожидаемых запросов в конкретной таблице


Мысль правильна.


p.s. ну и в продолжение: снабдить таблицу индексами на все случаи жизни явно не получится?


Тоже правильно. Но учти, что все случаи штатного использования бд пользователями должны быть покрыты индексами, если это надо.
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386492
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНо учти, что все случаи штатного использования бд пользователями должны быть покрыты индексами, если это надо. получается что если создать 4-5 индексов удовлетворяющих потребности всех возможных вариантов запросов, то это нормально?
типа: принять во внимание крайний слева префикс, полнотекстовый поиск, поиск по ключу с ограничением количества символов, уникальные индексы и т.д.
так?
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386500
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboy, да. Кто-то считает, что нет?
...
Рейтинг: 0 / 0
правильный подход к индексам
    #38386509
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirbuyboy, да. Кто-то считает, что нет?ну видимо я считал до текущей секунды :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / правильный подход к индексам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]