@vladkuzmenko

Как оптимизировать таблицу в mysql?

Здравствуйте
Есть таблица, в ней сейчас 150 млн записей, в будущем будет больше, но уже сейчас есть проблемы. Даже простая выборка уже не работает. Что нужно сделать что бы простые запросы летали?
Пример запроса
SELECT * FROM table WHERE text != ''
  • Вопрос задан
  • 271 просмотр
Решения вопроса 4
@lotrop
Как минимум делать запрос без *, т.е. выбирать нужные Вам поля. Плюс, наврятли Вам нужно получить сразу все записи результата, поэтому используйте выражение LIMIT, а дальше порционно берите новые данные.
Ответ написан
Какая селективность индекса?
Не равно тяжёлый запрос
Пустота намекает на текстовое поле. Добавьте ещё столбец типа tinyint если поле пустое текстовое, то заносите в него 0, если не пустое то 1. Далее ищете все строки где столбец=1 Работать будет не особо быстро но лучше.
Ответ написан
@edb
SQL
такой запрос никогда не будет "летать" вне зависимости от индексов. Ну почти никогда...
Совет: надо проверять не неравенство, а равенство.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Добавить нужные индексы, выбирать только необходимое, возможно привести базу в нормальную форму.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы