wilson212

Untitled

Mar 20th, 2017
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.19 KB | None | 0 0
  1. --
  2. -- Table structure for table `player_kit`
  3. --
  4.  
  5. CREATE TABLE `player_kit` (
  6.   `id` TINYINT UNSIGNED NOT NULL,
  7.   `pid` INT UNSIGNED NOT NULL,
  8.   `time` INT UNSIGNED NOT NULL DEFAULT 0,
  9.   `kills` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
  10.   `deaths` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
  11.   PRIMARY KEY(`pid`,`id`),
  12.   FOREIGN KEY(`pid`) REFERENCES player(`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  13.   FOREIGN KEY(`id`) REFERENCES kit(`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  15.  
  16. ALTER TABLE `bf2stats`.`player_kit` ADD INDEX `reverse_ids` (`id`, `pid`);
  17.  
  18. --
  19. -- My Full Scanning Query
  20. --
  21. SELECT p.name, p.rank, p.country, k.pid, k.kills, k.deaths, k.time
  22. FROM player_kit AS k
  23.   INNER JOIN player AS p ON k.pid = p.id
  24. WHERE k.id = 0 AND k.kills > 0
  25. ORDER BY kills DESC, time DESC
  26. LIMIT 0, 40
  27.  
  28. --
  29. -- EXPLAIN results by MySQL
  30. --
  31. +----+-------------+-------+------+---------------+-------------------------------------+-------------+-----+----------------+-------+
  32. | id | select_type | table | type | possible_keys | key                                 | key_len     | ref | rows           | extra |
  33. +----+-------------+-------+------+---------------+-------------------------------------+-------------+-----+----------------+-------+
  34. |  1 | SIMPLE      | k     | NULL | ref           | PRIMARY,`kit_kill_time`,reverse_ids | reverse_ids | 1   | const          | 75    |
  35. |  1 | SIMPLE      | p     | NULL | eq_ref        | PRIMARY                             | PRIMARY     | 4   | bf2stats.k.pid | 1     |
  36. +----+-------------+-------+------+---------------+-------------------------------------+-------------+-----+----------------+-------+
  37. --
  38. -- Additional Tables just in case, for reference
  39. --
  40. --
  41. -- Table structure for table `kit`
  42. --
  43.  
  44. CREATE TABLE `kit` (
  45.   `id` TINYINT UNSIGNED,
  46.   `name` VARCHAR(32) NOT NULL,
  47.   PRIMARY KEY(`id`)
  48. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  49.  
  50. --
  51. -- Table structure for table `player`
  52. --
  53.  
  54. CREATE TABLE `player` (
  55.   `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  56.   `name` VARCHAR(32) UNIQUE NOT NULL,
  57.   `rank` TINYINT NOT NULL DEFAULT 0,
  58.   `country` CHAR(2) NOT NULL DEFAULT 'xx',
  59.   PRIMARY KEY(`id`)
  60. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Advertisement
Add Comment
Please, Sign In to add comment