<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Индексы в MySQL

Индексы в MySQL

В предыдущих статьях я часто упоминал про индексы в MySQL. и я обещал, что скоро о них расскажу. Так вот, это время пришло, и сегодня Вы узнаете об индексах MySQL, об их назначении и о том, как их создавать.

Индексы используются для ускорения выборки данных из таблиц базы данных. По сути дела, индекс в MySQL - это сортировка определённого поля в таблице. То есть если поле сделать индексом, то вся таблица будет отсортирована по этому полю. Почему это выгодно?

Допустим, в нашей таблице находится 1000000 записей. У каждой записи есть уникальный идентификатор ID. И, допустим, нам надо вытащить записть с ID = 530124. Если нет индекса, то MySQL будет поочерёдно перебирать все записи в таблице, пока не найдёт нужную. В худшем случае, он будет вынужден перебрать 1000000 записей. Разумеется, это будет очень долго. А если бы был индекс (то есть поле было бы отсортировано), то выборка записи произошла бы в среднем в 100 000 раз быстрее. Как видите, выгода очевидна.

Однако, индексы обладают одним существенным изъяном, который не позволяет делать индексом каждое поле таблицы. Фактически, индекс - это ещё одна таблица, но просто с отсортированным соответствующим полем. То есть, делая индекс одного поля, Вы создаёте ещё одну точно такую же таблицу, которая будет занимать дополнительное место на диске.

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

Как сделать индекс в MySQL?

Для первичных ключей (PRIMARY KEY) индекс создаётся автоматически, а вот для других полей последовательность действий в PHPMyAdmin следующая:

  1. Зайти на главную страницу PHPMyAdmin.
  2. Выбрать из выпадающего списка имя базы данных, где находится требуемая таблица.

    Выбрать базу данных в PHPMyAdmin

  3. Кликнуть по имени таблицы, в которую Вы хотите создать индекс.

    Выбрать таблицу в PHPMyAdmin

  4. Щёлкнуть на значок "Молнии" напротив того поля, для которого Вы хотите создать индекс.

    Создание индекса в PHPMyAdmin

И, напоследок, хочется сделать небольшое резюме, чтобы Вы поняли: "Когда надо создавать индексы MySQL":

  • Если по полю очень часто идёт выборка, то его надо делать индексом.
  • Если в таблицу очень часто добавляются записи, и при этом выборка происходит редко (такое иногда бывает), то индексы делать не надо.

И ещё кое-что. Если вдруг Вы видите, что Ваши запросы на выборку очень сильно тормозят, то проанализируйте причину этого. Скорее всего, надо просто добавить индекс. В общем, тестируйте, и всё станет понятно.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (4):

NikSestrin NikSestrin 17.09.2013 16:59:47

Как Вы думаете, Михаил, почему нет комментов на эту тему - тему индексов?

Ответить

Skew4eg Skew4eg 11.05.2014 19:32:04

Здравствуйте, Михаил. У меня проблема заключается в том, что, когда я нажимаю на кнопку индексации, то выскакивает ошибка #1170 - BLOB/TEXT column 'text' used in key specification without a key length. Пожалуйста подскажите, что делать?

Ответить

tikkiwiki tikkiwiki 13.05.2014 09:34:51

Покажите Ваш запрос. Проблема происходит тогда, когда есть тип поля BLOB/TEXT и ему принадлежат другие типы например такие как TINYBLOB , MEDIUMBLOB , LONGBLOB , TINYTEXT , MEDIUMTEXT и LONGTEXT и Вы пытаетесь сделать первичный ключ.

Ответить

Skew4eg Skew4eg 13.05.2014 21:13:57

SELECT id,title,description,view FROM data WHERE MATCH(text) AGAINST('$search'). Как-то так. Рылся в интернете, только такое нашёл не знаю, может как-то по-другому надо?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.