Задавайте вопросы, мы ответим
Вы не зашли.
Люди, подскажите кто знает или может встречался с этим! Перечитала кучу всего, но конкретной инфы не нашла.
Есть таблица с 2-мя полями: id (ключ) и data (blob).
data сжата и инфа становится удобочитаемой после выполнения
Неактивен
Ваш запрос берет каждую строчку, распаковывает её, выполняет по ней поиск, переходит к следующей. Можно подождать час, день или неделю (зависит от размера базы).
Если запрос нужно выполнить единожды, то запустите второй вариант и ждите.
Если регулярно, то необходимо менять формат хранения. Например, вместо одного поля data делать три поля: body, title, domain и хранить там инфу не в сжатом виде.
Неактивен
Всё, поняла. СПАСИБО!
Неактивен
Если будете хранить разархивированные данные вас устроит запрос без % в начале
Неактивен
rgbeast написал:
Если будете хранить разархивированные данные вас устроит запрос без % в начале
select * from table where data like 'dieta-71kg%'
Не поможет, там ведь вхождение не в начале.
текст вида:
body: Диета, как похудеть
domain: dieta-71kg.ru
title: Все о диетах
Неактивен
Ясно, значит может быть оправдано разнесение всей этой информации по отдельным колонкам
Неактивен
это надо искать что то в строковых функциях? по типу функции explode в php? есть же аналог для mysql?
Неактивен
или лучше создать еще одно поле и просто перезалить разжатую инфу туда и потом искать обычным LIKE?
Неактивен
Можно создать отдельную таблицу, где данные не будут заархивированы.
Функционал типа explode() можно реализовать с помощью SUBSTRING_INDEX(str,delim,count) http://dev.mysql.com/doc/refman/5.0/en/ … ring-index
и SUBSTR()
Неактивен
Смотря что вам нужно. Если нужно делать подобные запросы часто, то нужно менять структуру. Если это нужно сделать раз другой, то можно подождать пока выполниться запрос.
Если менять структуру, то логично сделать три отдельные колонки (body, domain, title).
А лучше опишите подробней задачу, которая перед вами стоит.
Неактивен