ПЕРЕЗАГРУЗКА MySQL и СБРОС КЭША ЗАПРОСОВ

#mysql #caching #phpmyadmin #reload

#mysql #кэширование #phpmyadmin #перезагрузка

Вопрос:

Я использую phpmyadmin и работаю над сайтом, информация о котором извлекается из базы данных с таблицей под названием «profile_types», мне пришлось добавить строку для нового типа, но веб-сайт не отражает изменения. Я читал, и для параметра «иметь кеш запросов» установлено значение «да», поэтому решил, что мне следует очистить кеш и посмотреть, поможет ли это кому-нибудь.

Итак, после прочтения я пытался использовать RESET QUERY CACHEl, но продолжал получать сообщение об использовании RELOAD> Поэтому после еще одного чтения я не могу понять, как использовать команду RELOAD. Насколько я знаю, это учетная запись пользователя только для баз данных, поэтому я решил, что это администратор и у него есть необходимые привилегии. Я что-то упускаю? Кроме того, ребята, вы думаете, что выполнение сброса КЭША ЗАПРОСОВ, возможно, позволит ему обновить сайт новой записью? Я очистил кэш своих браузеров и попробовал все это, но безуспешно, поэтому решил, что это мой последний вариант.

Ответ №1:

Кэш запросов предназначен для результатов выбора. Он не «кэширует» вставки — если бы запросы были помещены в кэш, а затем не отражены в последующих результатах, база данных не соответствовала бы ACID.

Другими словами, представьте, что это была банковская база данных, и она «кэшировала» депозиты, но следила за тем, чтобы снятие средств отражалось немедленно. Вы бы утонули в овердрафтах. О … подождите… Так работают банки в наши дни.

Комментарии:

1. Но запрос для заполнения параметров является SELECT. Я вставил новую запись вручную. Мой выбор для заполнения параметров из таблицы выглядит так: «ВЫБЕРИТЕ ptitle, pid ИЗ profile_types ORDER BY id ASC», и он не добавляет новую опцию. Я прочитал еще немного и узнал, как предоставлять привилегии, и попытался предоставить привилегию перезагрузки, но это мне не позволило.

2. Затем добавьте проверку ошибок ко всем вашим запросам. Как МИНИМУМ, ваши вызовы базы данных должны выглядеть примерно так $result = mysql_query($sql) or die(mysql_error()); . Если данные не поступают из базы данных, то, скорее всего, они вообще не попадают В базу данных.

3. Спасибо, это именно то, что есть в моем коде для возврата результатов. Как я уже сказал, он возвращает все записи, которые были там. Я добавил новую опцию прошлой ночью, хотя сейчас ночь. Поэтому я вполне уверен, что это, вероятно, просто проблема с кэшем запросов, а не проблема с кодированием, поскольку все остальные записи возвращаются нормально. Тем не менее, спасибо за советы.