Created
June 29, 2019 21:40
-
-
Save andrey-helldar/3fe2770e3b6932436078e55c86f09e3f to your computer and use it in GitHub Desktop.
Предложите запрос на создание наиболее оптимальной MySQL таблицы user_scores, которая будет хранить результаты выполненных пользователями тестов и будет удовлетворять следующим требованиям:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Предложите запрос на создание наиболее оптимальной MySQL таблицы `user_scores`, | |
# которая будет хранить результаты выполненных пользователями тестов и будет | |
# удовлетворять следующим требованиям: | |
# | |
# * предполагается хранение большого числа записей, несколько миллионов и больше; | |
# * поле user_id - обычный цифровой идентификатор пользователя; | |
# * поле is_winner - флаг, победитель или нет. В системе принято флаги хранить в виде y/n, где "y" - победитель, "n" - проигравший; | |
# * поле score - набранные очки, от 0 до 10 000 | |
# * к данной таблице будет выполняться очень часто всего один вариант запроса: | |
SELECT | |
user_id, | |
is_winner, | |
score | |
FROM `user_scores` | |
WHERE is_winner = 'y' | |
ORDER BY score DESC | |
LIMIT 100 | |
# create table: | |
CREATE TABLE `user_scores`( | |
`user_id` BIGINT UNSIGNED NOT NULL, | |
`is_winner` CHAR(1) NOT NULL DEFAULT 'n', | |
`score` SMALLINT NOT NULL DEFAULT 0, | |
KEY(`user_id`), | |
INDEX `is_winner_index` (`is_winner`) | |
) CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment