[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите разобраться с индексами
Guest
mysql+phpmyadmin
прочитал в интернете информацию про индексы, но на практике не использовал, так как только еще завершаю первый сайт.

Дело вот в чем: на сайте 3 места, где люди могут писать комментарии(сообщения).
Я решил их объединить в одну таблицу, и разделить с помощью поля mes_where.

Это облегчает многие другие потребности мои, но тут я понимаю, что запросы по идее станут больше кушать. То есть мне как-то нужно мускулу объяснить, чтобы он в первую очередь смотрел на поле mes_where и не делал лишних операций(поисков, "просмотров"), где в поле mes_where не та категория. Как я понял для этого и нужны индексы.

Так вот, мне нужно на это поле поставить индекс? и какой? обычный, текстовый ? в общем нужна помощь и разъяснение если можно.



Спустя 42 минуты, 47 секунд (11.11.2010 - 15:48) Nikitian написал(а):
fulltext индекс ставится только на текстовые поля, причём только если вы используете match-against. В других случая он работать не будет.
Покажите запросы, которые делаете и хотите оптимизировать, скажу какие индексы надо добавлять... ну или сами explain используйте для анализа запросов.

Спустя 6 минут, 14 секунд (11.11.2010 - 15:54) Guest написал(а):
Nikitian
90% запрсов, свзяанных с основной таблицей сообщений(messages) примерно такого вида:

"SELECT .. .. .. FROM `messages` WHERE `topicid`='$topicid' AND `mes_where`='$where' ORDER BY id LIMIT $limit"

"INSERT INTO `messages` (.. .. ..) VALUES (.. .. ..) WHERE `mes_where`='
$where'"


$where - раздел, один из трех, где бывают комментарии.

нужно добиться примерно такого эффекта, как будто для каждого раздела была создана отдельная таблица, а не общая.

Спустя 11 минут, 28 секунд (11.11.2010 - 16:06) Nikitian написал(а):
сравните быстродействие составных индексов topicid,mes_where,id и topicid,mes_where. Склоняюсь к 2 варианту, т.к. у вас ещё и инсёрты часты, а в этом случае имеет смысл экономить на размере индекса даже интового. Хотя совмеваюсь, что инсёртов много ))
Цитата
нужно добиться примерно такого эффекта, как будто для каждого раздела была создана отдельная таблица, а не общая.
Вам быстродействие или представления (view)?

Спустя 4 минуты, 36 секунд (11.11.2010 - 16:10) Guest написал(а):
Nikitian
быстродействии))

я так понимаю:

alter table `messages` ADD INDEX (`topicid`, `mes_where`)

?

Спустя 6 минут, 18 секунд (11.11.2010 - 16:17) Nikitian написал(а):
именно так

Спустя 55 секунд (11.11.2010 - 16:18) Guest написал(а):
Nikitian
пасиба!

Спустя 6 минут, 28 секунд (11.11.2010 - 16:24) linker написал(а):
Без структуры и связей говорить об индексах бесполезно.

Спустя 2 минуты, 22 секунды (11.11.2010 - 16:27) Nikitian написал(а):
linker
99% там всё просто, а этого достаточно, чтобы расставить именно такие индексы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.