Рассмотрим схему таблицы для хранения цветов и шестнадцатеричных кодов
CREATE TABLE `tbl_master_colors` (
`color_id` int(11) NOT NULL,
`color_name` varchar(100) NOT NULL,
`color_hex` varchar(6) NOT NULL,
`color_hex_hashed` varchar(7) NOT NULL,
`color_r` int(11) NOT NULL,
`color_g` int(11) NOT NULL,
`color_b` int(11) NOT NULL,
`status` enum('1','2','3') NOT NULL DEFAULT '1',
`inserted_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_ts` timestamp NULL DEFAULT NULL,
`deleted_ts` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Теперь мне нужно запросить, чтобы извлечь все красные цвета
SELECT * FROM tbl_master_colors
WHERE color_name LIKE "red%"
ORDER BY color_g DESC, color_b ASC, color_r DESC
Теперь у меня есть еще 2 варианта этого запроса
SELECT *
FROM (SELECT * FROM tbl_master_colors
WHERE color_name LIKE "red%") s
ORDER BY color_g DESC, color_b ASC, color_r DESC;
SELECT *
FROM (SELECT * FROM tbl_master_colors
ORDER BY color_g DESC, color_b ASC, color_r DESC) s
WHERE color_name LIKE "red%"
Вопрос: КакойИз 2 приведенных выше вариантов выбора запроса самый быстрый и почему?Если возможно, пожалуйста, расположите все три по порядку с указанием причины.
Рассмотрим: В наборе данных должно быть 9 x 10 ^ 6 записей данных и вывод в диапазоне 10 ^ 4 .