|
|
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
всем привет как-то не слишком углублялся в теоретическое обоснование использования индексов, но время пришло... насколько правильна следующая мысль = вывод о создании тех или иных индексов зависит от потенциально ожидаемых запросов в конкретной таблице типа ход мыслей такой: в данной таблице В ОСНОВНОМ я буду искать так-то и так-то, поэтому создам индексы на такие-то поля p.s. ну и в продолжение: снабдить таблицу индексами на все случаи жизни явно не получится? народ, помогите с разжевыванием ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 09:45:47 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
В целом все правильно. Еще (помимо ускорения выборки) индекс создаются (иногда неявно) для обеспечения работы ключей и констрейнтов - для первичных, уникальных и внешних ключей. Кстати, бывает, что удается снабдить таблицу индексами на все случаи жизни :) Например, когда полей в этой таблице всего два. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 09:50:25 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
miksoftЕще (помимо ускорения выборки) индекс создаются (иногда неявно) для обеспечения работы ключей и констрейнтов - для первичных, уникальных и внешних ключей. оооо! констрейнты - это совершенно не знакомо miksoftКстати, бывает, что удается снабдить таблицу индексами на все случаи жизни :) Например, когда полей в этой таблице всего два. такое разве бывает? такой вот вопрос: есть таблица в которой лежат статьи, размер статьи обычно около 2500 знаков, тип поля - longtext, записей совсем мало - 140 насколько облегчит/усложнит создание по этому полю FULLTEXT KEY ? я уже попробовал и протестировал - скорость поиска по запросу Код: plsql 1. снизилась с 0.0103 sec до 0.0020 sec - в 5 раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:00:36 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
поиск по фултексту производится с помощью оператора match ... against ..., а не like. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:04:01 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
tanglirпоиск по фултексту производится с помощью оператора match ... against ..., а не like.абсолютно согласен но мне важно было понять разницу во времени поиска - поэтому неоптимальный подход только подчеркнул результаты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:06:22 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
buyboymiksoftКстати, бывает, что удается снабдить таблицу индексами на все случаи жизни :) Например, когда полей в этой таблице всего два. такое разве бывает?"такое" - это таблица из двух полей? Бывает. В моем случае это была таблица-связка для отношения многие-ко-многим. Там было два индекса - для первичного ключа из обоих полей и просто индекс из тех же двух полей в обратном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:08:02 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
buyboyподчеркнул результатыВы уверены, что не нарвались на какое-нибудь кэширование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:11:14 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
параллельно читаю статью и там есть такая вот мысль = MySQL сам построит индексы по полю, если при объявлении структуры таблицы мы зададим полю уникальность UNIQUE, говорящую о том, что данное поле не может хранить два одинаковых значения это так? и в чем кардинальное отличие индекса UNIQUE от FULLTEXT ? по-идее ведь содержание статьи всегда уникально как последовательность символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:11:17 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
miksoftbuyboyподчеркнул результатыВы уверены, что не нарвались на какое-нибудь кэширование?ммммм... не думал на эту тему... просто создал в денвере на локалхосте две идентичные таблицы: одна с фуллтекст индексом, вторая - без него ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:12:43 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:16:28 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
tanglirпоиск по фултексту производится с помощью оператора match ... against ..., а не like. поиск с помощью запроса Код: plsql 1. дал еще лучший результат = 0.0015 sec ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:29:10 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
buyboy, ну так ясное дело, ведь в нём фултекст индекс использовался, в отличие от предыдущего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 10:45:54 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
насколько правильна следующая мысль = вывод о создании тех или иных индексов зависит от потенциально ожидаемых запросов в конкретной таблице Мысль правильна. p.s. ну и в продолжение: снабдить таблицу индексами на все случаи жизни явно не получится? Тоже правильно. Но учти, что все случаи штатного использования бд пользователями должны быть покрыты индексами, если это надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 11:18:59 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
MasterZivНо учти, что все случаи штатного использования бд пользователями должны быть покрыты индексами, если это надо. получается что если создать 4-5 индексов удовлетворяющих потребности всех возможных вариантов запросов, то это нормально? типа: принять во внимание крайний слева префикс, полнотекстовый поиск, поиск по ключу с ограничением количества символов, уникальные индексы и т.д. так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 12:49:42 |
|
||
|
правильный подход к индексам
|
|||
|---|---|---|---|
|
#18+
buyboy, да. Кто-то считает, что нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2013, 12:53:21 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38386190&tid=1836117]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 329ms |

| 0 / 0 |
