Я правильно расставила индексы? Дело в том, что индексы в таблицу я ещё не добавляла, поэтому пример добавления индексов я нашла в интернете. Код (Text): CREATE TABLE `categoria` ( `id` int(2) NOT NULL, `title` varchar(255) NOT NULL, `title_url` varchar(255) NOT NULL, `meta_k` text NOT NULL, `meta_d` text NOT NULL, `text` text NOT NULL, `id_parent` int(11) NOT NULL DEFAULT '0', `type` enum('cat','potcat','href') NOT NULL, `stmap` enum('0','1') NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `categoria` ADD PRIMARY KEY (`id`); ALTER TABLE `categoria` MODIFY `id` int(2) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=136; ALTER TABLE `categoria` ADD INDEX cat_index (id,id_parent); id - id категории id_parent - id подкатегории, пример на рисунке Код (Text): CREATE TABLE IF NOT EXISTS `data` ( `id` int(10) NOT NULL, `cat` int(5) NOT NULL, `iconpath` int(10) NOT NULL, `title` varchar(255) NOT NULL, `title_url` varchar(255) NOT NULL, `description` text NOT NULL, `keywords` text NOT NULL, `meta_d` text NOT NULL, `text` text NOT NULL, `view` int(7) NOT NULL DEFAULT '0', `author` varchar(100) NOT NULL, `date` date NOT NULL DEFAULT '0000-00-00', `img` varchar(255) NOT NULL DEFAULT '../../file/no-photo.jpg', `hide` enum('show','hide') NOT NULL DEFAULT 'show', `rating` int(10) NOT NULL DEFAULT '5', `q_vote` int(10) NOT NULL DEFAULT '1' ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `data` ADD PRIMARY KEY (`id`); ALTER TABLE `data` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1739; ALTER TABLE `data` ADD INDEX info_index (id,cat); id - id статьи cat - id категории в которой находится эта статья
@Katy93, ну если стало работать быстрее, то правильно. А вообще, покажите запросы, которые пытаетесь ускорить
В смысле показать запросы таблиц разве не достаточно? И как вообще проверить, что сайт стал грузиться быстрее. Есть какая-нибудь программа или же плагин проверяющий быстродействие запросов?
Индексы ставят для ускорения конкретных запросов Можно засекать время. Можно по общему времени отклика сайта в браузере смотреть, это тут вам уже показывали.
Я пока на тестовом сервере проверяю сайт, индексы в базу данных на хосте пока не добавляла. В смысле, что это значит? Индексы нужно ставить везде где id, включая идентификатор который ссылается на статьи из другой таблицы, связь один ко многим?
Представьте себя на хирургическом столе (тьфу-тьфу, это я чисто гипотетически) Хирург просит включить видосик на ютубе "как удалить аппендицит" и берёт в руки кухонный нож вместо скальпеля. Какие ваши действия (допустим наркоз вам еще не успели вкатить)? ___ P.S. Я конечно слегка утрирую, но сайт сродни живому организму, без определённых знаний навредить гораздо проще, чем "полечить". Думайте.
Индексы ставятся для того, чтобы ускорить те или иные запросы, на основе полей, для которых идёт поиск.
Код (Text): CREATE INDEX meta_k ON categoria(meta_k); CREATE INDEX meta_d ON categoria(meta_d); CREATE INDEX id_parent ON categoria(id_parent); CREATE INDEX type ON categoria(type); CREATE INDEX stmap ON categoria(stmap); CREATE INDEX cat ON data(cat); CREATE INDEX meta_d ON data(meta_d); CREATE INDEX hide ON data(hide); CREATE INDEX rating ON data(rating); запустите это)) может поможет)) но это как пальцем в небо))
@Katy93, на тот случай если что-то пойдёт не так, должна быть копия рабочей БД. Это называется - backup. Но если вы об этом узнали только-то, то всё еще гораздо хуже, чем кухонный нож вместо скальпеля. Если вы про бэкап знаете и без меня, то вопрос про удаление звучит по крайней мере странно.
Я про бэкап знаю, у меня и база данных есть и копия сайта. Просто не хочется лишний раз заморачиваться, так как база данных стала уже довольно солидной более 100 мб.
Вот у меня например фильтрация данных происходит: Код (Text): WHERE id=$id_parent AND column_pos='lefttd' ORDER BY pos DESC Мне нужны индексы добавить в id, column_pos, а так же там где ORDER by поле "pos", я правильно поняла?