прочитал в интернете информацию про индексы, но на практике не использовал, так как только еще завершаю первый сайт.
Дело вот в чем: на сайте 3 места, где люди могут писать комментарии(сообщения).
Я решил их объединить в одну таблицу, и разделить с помощью поля mes_where.
Это облегчает многие другие потребности мои, но тут я понимаю, что запросы по идее станут больше кушать. То есть мне как-то нужно мускулу объяснить, чтобы он в первую очередь смотрел на поле mes_where и не делал лишних операций(поисков, "просмотров"), где в поле mes_where не та категория. Как я понял для этого и нужны индексы.
Так вот, мне нужно на это поле поставить индекс? и какой? обычный, текстовый ? в общем нужна помощь и разъяснение если можно.
Спустя 42 минуты, 47 секунд (11.11.2010 - 15:48) Nikitian написал(а):
fulltext индекс ставится только на текстовые поля, причём только если вы используете match-against. В других случая он работать не будет.
Покажите запросы, которые делаете и хотите оптимизировать, скажу какие индексы надо добавлять... ну или сами explain используйте для анализа запросов.
Покажите запросы, которые делаете и хотите оптимизировать, скажу какие индексы надо добавлять... ну или сами explain используйте для анализа запросов.
Спустя 6 минут, 14 секунд (11.11.2010 - 15:54) Guest написал(а):
Nikitian
90% запрсов, свзяанных с основной таблицей сообщений(messages) примерно такого вида:
$where - раздел, один из трех, где бывают комментарии.
нужно добиться примерно такого эффекта, как будто для каждого раздела была создана отдельная таблица, а не общая.
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`)
?
быстродействии))
я так понимаю:
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% там всё просто, а этого достаточно, чтобы расставить именно такие индексы.
99% там всё просто, а этого достаточно, чтобы расставить именно такие индексы.