Чайниковские вопросы по индексации

SeaGull

Junior Member
Чайниковские вопросы по индексации

Господа, заранее прошу прощения за заведомо чайниковские вопросы. Надеюсь они не пропадут даром и послужат FAQ'ом для таких же проблематиков с англоязычной документацией.

-----------------------------------

1. Достаточно ли заявить
PHP:
alter table MYTABLE add index (pole1, pole2, pole),
чтобы база проиндексировалась по этим полям, или надо совершить еще какие-то действия ?

2. Чем грозит избыточное индексирование (т.е. тех полей, которые редко встречаются или вообще не встречаются в запросах) ?

3. Что делает
PHP:
CREATE [UNIQUE|FULLTEXT] INDEX index_name ON tbl_name (col_name[(length)],... ) ?
И если, как я понял, оно работает полностью аналогично ALTER TABLE, то всплывает ли где-нибудь потом index_name и зачем он вообще нужен ?

4. Можно ли и как проиндексировать поле BLOB ?

5. Что такое в индексные файлы в mySQL ?
 

Demiurg

Guest
Re: Чайниковские вопросы по индексации

1 При создании индекса поле сразу же индексируется.

2 большие объемы. Пра добавлении записи в таблицу с кучей индексов много времени уходит на переиндексирование.

3 The CREATE INDEX statement doesn't do anything in MySQL prior to Version 3.22. In Version 3.22 or later, CREATE INDEX is mapped to an ALTER TABLE statement to create indexes. Имя индекса например проигодится для его удаления .

4 Only the MyISAM table type supports indexing on BLOB and TEXT columns. When putting an index on a BLOB or TEXT column you MUST always specify the length of the index:
CREATE TABLE test (blob_col BLOB, index(blob_col(10)));

5 собственно файлы, с индексами.
 
Сверху