У нас есть два сервера RDS с поддержкой mysql, и перед нами стоит проблема, которую я не могу решить. Запрос, который мы используем, представляет собой простой выбор максимальной строки даты из набора данных. Это отлично работает на первом сервере, так как это неправильно работает на другом сервере даже в том же наборе данных.SQL Query не работает одинаково в двух разных серверах AWS Mysql
Запрос мы используем ниже:
SELECT `name`,last_update_date FROM
(SELECT * FROM `table1` ORDER BY last_update_date DESC) X GROUP BY `name`;
Я не знаю, почему это происходит. Я проверил для глобальных переменных на обоих серверах и нашли следующие переменные, которые не присутствуют в новом сервере:
binlogging_impossible_mode
innodb_additional_mem_pool_size
innodb_mirrored_log_groups
innodb_use_sys_malloc
simplified_binlog_gtid_recovery
sql_log_bin
storage_engine
thread_concurrency
timed_mutexes
Любая помощь приветствуется.
Вам нужно определить «работать правильно», как запрос кажется излишне усложненным. – Uueerdo
Вы злоупотребляете пресловутым нестандартным расширением MySQL для GROUP BY. https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html Это расширение * просто любит *, чтобы дать вам непредсказуемые результаты. –
Вместо сравнения переменных вы, вероятно, должны сравнивать планы выполнения, созданные EXPLAIN на обоих серверах. http://dev.mysql.com/doc/refman/5.7/en/explain.html –