Mysql подскажите оптимизировать таблицу или запрос

программирование php MySQL базы данных

В таблице есть поле в котором данные записаны через разделитель | в виде:
Запись 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 млн. сравнений, но надежда была, поэтому я поднял этот вопрос. Задачу я описал именно так как она сейчас работает.

Разработчику уши я накручу. Спасибо.
Ответы:
Создать таблицу links_ids примерно такого вида
Про лимиты можно узнать тут
1) Здесь не оптимизировать нужно, а руки разработчику оторвать.\
Смотрим что происходит:
Каждый Like просматривает таблицу простым перебором (без использования индексов, даже если они и есть) + конкретная строка требует десятки сравнений. Сделать более неэффективную структур очень трудно. При миллионе записей и 5 Like потребуется 50 млн. сравнений для ОДНОГО ЗАПРОСА
2) Для варианта Epsiloncool и при условии что Link_value имеет тип Integer, даже при увеличении количества записей на запрос требуется 4 *5 = 20 сравнений. Комментарии излишни.
А вообще если бы ты описал задачу полностью, можно было бы "дать лучший совет по использованию вашего пресса"


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.