На моем веб-сайте я экспериментирую с очень большими таблицами. У одного «элемента» таблицы есть около 2 миллионов записей, а у второго - «items_parents» около 6 миллионов. Удивительно, что мне нужно присоединиться к этим столам. Когда я пытаюсь, например, эту команду SQL в MySQL:Ускорение работы с огромными таблицами SQL
SELECT *
FROM `items_parent`
JOIN items ON items_parent.id = items.id
WHERE items_parent.parent = 4706421
занимает около 7 секунд, что просто слишком долго для веб-сайта. На обеих таблицах у меня есть двойные индексы (типа BTREE) на 1. Идентификатор и имя - на 2. Идентификатор и родитель. Я не знаю много об использовании индексов, чтобы быть честным, но лучше ли иметь два общих индекса правильно? В первом название уникально, может быть, это может помочь? Или индексы в порядке? В таком случае, что я могу улучшить?
Большое спасибо
Я не буду отмечать это как ответ, и я полностью уверен в различиях между SQL и mySQL с индексами, надеюсь, кто-то может помочь заполнить этот пробел для нас. Вы захотите проиндексировать свой столбец items_parent.parent, а также ваши столбцы id на элементах items_parent и на элементах. Кроме того, если вы не используете все столбцы из таблицы, вы должны вернуть только те столбцы, которые вам нужны. –
ВЫБОР * необходимо? Попробуйте выбрать только один столбец для сравнения. –