Не могу получить правильные результаты от MySQL
У меня есть таблица с именем столбца status
чье значение может быть 1,2 и 3.
Скажем, имя таблицы НИЧЕГО, какой-то поток в моем приложении выполнил запрос
SELECT order_num, `status` from ANYTHING WHERE status = 2
он вернет 2 записи следующим образом.
order_num status
D2017101100001 2
D2017101100002 2
После этого другой поток в том же приложении обновил статус D2017101100001
в 3
и мы можем видеть статус изменен на 3 от клиента Navicat. Затем вызвал запрос
SELECT order_num, `status` from ANYTHING WHERE status = 2
еще раз, но, к сожалению, мы получили те же результаты, что и раньше, D2017101100001
все еще вернулся.
И тогда мы казнили
SELECT order_num, `status` from ANYTHING WHERE status = 3
D2017101100001
не будут возвращены.
Но через несколько секунд все становится нормальным D2017101100001
будут возвращены из условия status = 3
и не вернулся из status = 2
,
Мы подозревали, что это вызвано кешем запросов, но когда мы проверяли состояние QChace, значение QCache_hits равно 0, как показано ниже.
Variable_name value
Qcache_free_blocks 1
Qcache_free_memory 1031832
Qcache_hits 0
Qcache_inserts 0
Qcache_lowmem_prunes 0
Qcache_not_cached 31050313
Qcache_queries_in_cache 0
Qcache_total_blocks 1
Qcache_total_blocks 1
Мы также использовали mybatis, но для этого запроса у нас был кеш first_level, и мы видели журнал попаданий в базу данных, поэтому, похоже, основная причина все еще на стороне mysql.
Если кто-нибудь сталкивался с этой проблемой раньше? Пожалуйста, дайте нам помощь.