Индексация БД. Посоветуйте пожалуйста

Alastar

Новичок
Доброго времени суток! Подскажите пожалуйста кто знает что-то об индексации таблиц БД.

Вообщем есть таблица новостей на 100 000 строк, там общий обьем 300 Мб

подскажите где можно найти нормальный мануал по шагам добавления индекса, чтоб было написано что должно получиться

гугл говорит типа в 100 раз увеличивает скорость работы и тд но чтото видимых результатов пока не вижу, добавляю индекс просто кнопкой в ПХПмуАДМИН к конкретному полю пишет добавлено, но отметок нигде нет об этом

или может сразу скажете какие поля лучше индексировать и как это делать
 

С.

Продвинутый новичок
Не бывает просто индекса, который ускоряет. Как сказано выше, по каким полям идет поиск чаще всего, по ним и надо индексировать. Индексов может быть несколько по разным полям.
 

Alastar

Новичок
а в чем тогда быстродействие? например не было индекса страница грузилась 0.5 с, добавил индекс к столбцу который присутвстует в условии WHERE и все равно 0.5 с

а будет ли увеличение скорости если проиндексированый столбец есть условием запроса с LEFT JOIN например ?
 

С.

Продвинутый новичок
Значит ты добавил бесполезный индекс, база его не использует.
 

Alastar

Новичок
добавление индекса ведь идет по нажатию на одну из ссылок?
 

keltanas

marty cats
Для начала, почему ты думаешь, что это из-за базы данных страница грузится долго, а не из-за шедевров кодинга?
 
  • Like
Реакции: WMix

Alastar

Новичок
Для начала, почему ты думаешь, что это из-за базы данных страница грузится долго, а не из-за шедевров кодинга?
Для начала - я этого не знаю, тошо до меня проект вращал как минимум 1 человек, у которого код без комментариев вообще, и реализация постраничнной навигации 120 строк, но приходится читать. А ты для начала лучше ответь, если страница грузится 1 с при наличии правильно работающего индекса сколько будет грузиться?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
То есть:
ты не знаешь, как проверить какие индексы использует твое приложение во время работы
ты не знаешь, как профилировать свое приложение
ты не знаешь, как просмотреть индексы на таблицах в phpMyAdmin

соответственно ты не в курсе - поможет ли тебе добавление индексов.
Однако же ты пришел к нам, задал свой сферический вопрос и ждешь, что тебе все тут красочно опишут?

А ты для начала лучше ответь, если страница грузится 1 с при наличии правильно работающего индекса сколько будет грузиться?
Можно еще раз и со знаками пепинания?

В целом же можно просто посмотреть тут, или тут
 
  • Like
Реакции: WMix

Alastar

Новичок
ты не знаешь, как проверить какие индексы использует твое приложение во время работы
я не знаю как это посмотреть сразу по ходу

ты не знаешь, как просмотреть индексы на таблицах в phpMyAdmin
show index from `table_name`;

соответственно ты не в курсе - поможет ли тебе добавление индексов.
это я и пытаюсь выяснить

Однако же ты пришел к нам, задал свой сферический вопрос и ждешь, что тебе все тут красочно опишут?
а тут что? типа собрались боги которым нельзя вопрос задать? я вообщето учусь, и да я еще многого не знаю, и у кого спрашивать и узнавать если не у опытных людей, думаю тут уж найдутся такие, если все красочно опишут по шагам или дадут мануал по шагам с полным описанием будет вообще супер

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

Можно еще раз и со знаками пепинания?
нельзя. кстати слово пишется "пРепинания", если что

В целом же можно просто посмотреть тут, или тут
спасибо, пожалуй гляну
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
я не знаю как это посмотреть сразу по ходу
Надо брать свой запрос и делать ему EXPLAIN, просто, долго, разбирать каждый запрос, если ты в нем не уверен. Есть еще встроенный профайлер в mysql, который может показать тебе то, что в недрах запроса происходит.

show index from `table_name`;
Можно, но лучше все же просто открыть вкладку индексов при выбранной таблице, это будет быстрее.

это я и пытаюсь выяснить
Надо почитать про профилирование приложений и посмотреть что же у тебя там занимает 1 секунду.

а тут что? типа собрались боги которым нельзя вопрос задать?
Вопрос задать можно, и даже нужно. Однако если ты задаешь его в такой форме, не приводя никаких данных о работе приложение и не имея представления о том, стоит ли тебе начинать добавлять индексы и какие - скорей всего будет фейл. Тебе кстати Флоппик уже написал фактическое руководство к действию, что надо посмотреть какие у тебя условия в WHERE, проанализировать их и добавить по ним индексы.

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

До кучи, почитай это, хотя про индексы посмотреть важнее.
 

Alastar

Новичок
Надо почитать про профилирование приложений и посмотреть что же у тебя там занимает 1 секунду.
там оно рандомно как то от 0.3 до 1, может я не так меряю хз, функцией mikrotime () в начале и в конце страницы а потом вычитанием первого из последнего
 

keltanas

marty cats
А ты для начала лучше ответь, если страница грузится 1 с при наличии правильно работающего индекса сколько будет грузиться?
Вот столько.

Прежде чем грубить старшим, лучше бы включил мозг подумал, с чего вдруг твоя страница работает медленно именно из-за индексов?
Если у тебя нет конкретного запроса, время которого занимает 1 секунду, то не следует сразу нести свой вопрос в Базы данных.

Я почти уверен, что проблема не в БД и не в индексах. А в том, что там где-нибудь в цикле на сотню другую итераций выполняются сотня-другая запросов. И никакой индекс тебя не спасет.
Также велика вероятность, что БД вообще не при чем, а долго выполняется какой-то кривой алгоритм.
Так что возьми профайлер в руки, включи логи в mysql и ищи узкое место.

Когда ты его найдешь, пишешь об этом сюда. Подробно описываешь проблему и тебе советуют как с ней бороться.
 
Сверху