В таблице есть поле в котором данные записаны через разделитель | в виде:
Запись 1 |15|16|17|56|83|84|
Запись 2 |1|8|10|30|31|36|39|51|53|68|69|80|85|
Запись 3 |1|6|10|15|16|
....
Запись N |1|6|8|9|10|21|24|29|30|31|36|39|45|46|49|53|60|63|
Запросы к базе вот такие:
SELECT * FROM `go_link` WHERE `link` LIKE '%|15|%' OR `link` LIKE '%|16|%' OR `link` LIKE '%|17|%' OR `link` LIKE '%|56|%' ORDER BY `date` DESC;
Причем кол-во LIKE может быть в несколько раз больше.
Нагрузка на Mysql огромная, записей в базе почти 1000000.
Нужен совет!
Что мне с этим добром сделать, как оптимизировать?
Примечание:
Epsiloncool после переноса кол-во записей в links_ids будет приблизительно 8 милионов и дальше постоянно увеличивается, это не будет сильно тяжело для Mysql?
Примечание:
Epsiloncool спасибо за ваши ответы. Я и подозревал что именно так и придется делать.
Андрей Архангельский спасибо вам за разъяснения, я понимаю что выборка записей потребует 50 млн. сравнений, но надежда была, поэтому я поднял этот вопрос. Задачу я описал именно так как она сейчас работает.
Разработчику уши я накручу. Спасибо.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.