Mysql Не работает UPDATE mysql

papuas

Новичок
Точнее, работает, но phpmyadmin выдает затронуто 0 строк, хотя строка в базе есть

я предполагаю, что проблема здесь

Потому если написать `bread_crumb` = "44445" все работает, я как понимаю какие символы что ли использую ни те? Тип поля bread_crumb - text

Код:
UPDATE hi_caches SET `bread_crumb` = "44445" WHERE `material` = "68683" LIMIT 1
работает

Код:
UPDATE hi_caches SET `bread_crumb` = "<ul class="bread_crumb"><li><a href="http://tvoyadres.ru">Главная</a></li><li><a href="http://tvoyadres.ru/index.php?region=31">Республика Татарстан</a></li><li><a href="http://tvoyadres.ru/index.php?region=31&city=25">Казань</a></li><li><a href="http://tvoyadres.ru/search.php?region=31&city=25&type=8"quot;>Районы</a></li></ul>" WHERE `material` = "68683" LIMIT 1
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Хлебные крошки никто так не хранит, делают нормальную вложенность и потом ее считают-выводят.
 

papuas

Новичок
Хлебные крошки никто так не хранит, делают нормальную вложенность и потом ее считают-выводят.
Проблема решилась, у меня просто запись заудублировалась, а хлебные крошки это кеширование, я большую часть данных кеширую в отдельной таблице потому база, почти 10ГБ весит.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ты правда думаешь что это кеширование? То есть данные базы, ты кешируешь в базе и потом из базы же выбираешь? Я правильно понял?
 

WMix

герр M:)ller
Партнер клуба
для статистики такой подход оправдан)
 

papuas

Новичок
Ты правда думаешь что это кеширование? То есть данные базы, ты кешируешь в базе и потом из базы же выбираешь? Я правильно понял?
Нет не правильно, я сохраняю части с генерированной html страницы, а потом уже вытаскиваю. Чтоб снизить количество запросов к базе.
 

WMix

герр M:)ller
Партнер клуба
Ерундой ты занимаешься, лучше оптимизируй вывод если тормозит
 

papuas

Новичок
для статистики такой подход оправдан)
Все верно, все страницу не могу сохранить, из-за динамики, (количество просмотров, кто автор, телефон и тп) не сохраняю, а то что не меняется сохраняю, в том числе хлебные крошки)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
ТС, Ты занимаешься бредом) Оптимизируй то, что тормозит. А не кешируй куски в базе.

@WMix ой... не говори, нет тут статистики))
 

papuas

Новичок
Ерундой ты занимаешься, лучше оптимизируй вывод если тормозит
У меня и так самый быстрый сайт в России
ТС, Ты занимаешься бредом) Оптимизируй то, что тормозит. А не кешируй куски в базе.

@WMix ой... не говори, нет тут статистики))
Пипец, я сечас дам запрос а скажите куда его дальше оптимизировать

Код:
$sql = 'SELECT * FROM ' . MATERIALS_TABLE  . ' WHERE `id` < "' . $f_materials['id'] . '" AND `approve` = "1" AND `status` = "1" AND `type` = "' . $f_materials['type'] . '" ORDER BY `id` DESC LIMIT 1';
Код:
        $sql = 'SELECT * FROM ' . MATERIALS_TABLE . ' WHERE `id` != "' . $f_materials['id'] . '" AND `approve` = "1" AND `status` = "1" AND `type` = 10 AND ( 6371000 * acos ( cos ( radians ( ' . $coordinates[1] . ' ) ) * cos ( radians ( SUBSTRING_INDEX ( coordinates,",",-1 ) ) ) * cos ( radians ( SUBSTRING_INDEX ( coordinates,",",1 ) ) - radians ( ' . $coordinates[0] . ' ) ) + sin ( radians ( ' . $coordinates[1] . ' ) ) * sin ( radians ( SUBSTRING_INDEX ( coordinates,",",-1 ) ) ) ) ) <= 200 ORDER BY street ASC, ABS (`name`) ASC';
Индексы есть, записей в этой таблице уже почти 2 млн. как оптимизировать такие запросы? Это самые тормозные запросы у меня, другие выполняется за 0.0003 сек в среднем.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Да уж, а что тут добавить можно. Запросы без плейсхолдеров (/summon @Фанат ) Индексы неизвестно какие, надеюсь, что адекватные. Какая там селективность у них тоже никто не знает. Вот только кешировать базу в самой базе - не очень популярный метод. Да, и 2 мил записей - ничто. Просто в твоем случае у тебя нет возможности постоять индекс по выражению.
 

papuas

Новичок
Да уж, а что тут добавить можно. Запросы без плейсхолдеров (/summon @Фанат ) Индексы неизвестно какие, надеюсь, что адекватные. Какая там селективность у них тоже никто не знает. Вот только кешировать базу в самой базе - не очень популярный метод. Да, и 2 мил записей - ничто. Просто в твоем случае у тебя нет возможности постоять индекс по выражению.
Вы абсолютно, правы индексы не работают в тех 2 запросах, а грузят серьезно, особенно когда поисковики приходят.
Предполагаете, кешировать в файлы, но там же проблемы в выборкой будут если в папке будет 2 млн записей или я не прав? По крайне мене с картинками у меня раньше такая проблема была, потом я их раскидал по дате создания в папки типа этой uploads/2015/08/07/ , полегчало сразу.
 

fixxxer

К.О.
Партнер клуба
нет возможности постоять индекс по выражению
Если используется mariadb, можно изобразить подобие функциональных индексов через persistent virtual columns. Изврат, но работает :)

На худой конец, денормализацию триггером можно приделать.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я считаю, что 2 млн записей в мускуле - не много. Картинки тут вообще не при чем.
 

WMix

герр M:)ller
Партнер клуба
В базу данных надо писать данные, в твоем случае, путь к корню найти можно в 2 запроса, при любой вложенности дерева, с использовонием вложенных множеств, или свести к одному записывая путь на строчку в машиночитабельном формате. А рисование этого пути отложи до самого последнего момента - до вывода
 
Сверху