explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
  1、创建数据库
  创建的sql语句如下:
/*
Navicat MySQL Data Transfer
Source Server         : localhost-newpassword
Source Server Version : 50550
Source Host           : localhost
Source Database       : testExplain
Target Server Version : 50550
File Encoding         : utf-8
Date: 08/05/2016 18:06:12 PM
*/
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
--  Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(30) NOT NULL,
`age` int(11) NOT NULL,
`sex` tinyint(4) NOT NULL,
`isDeleted` tinyint(4) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_unidx` (`id`) USING BTREE,
UNIQUE KEY `name_unidx` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
--  Records of `user`
-- ----------------------------
BEGIN;
INSERT INTO `user` VALUES ('1', 'wwwwe', '11', '1', '0'), ('2', '222', '22', '1', '0'), ('3', '2222', '10', '0', '0');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
  2、explain使用方法
  使用方法:在select语句前加上explain 可以了,如:
  explain select * from user where id = 1
  结果:
  +----+-------------+-------+-------+------------------+---------+---------+-------+------+-------+
  | id | select_type | table | type  | possible_keys    | key     | key_len | ref   | rows | Extra |
  +----+-------------+-------+-------+------------------+---------+---------+-------+------+-------+
  | 1  | SIMPLE      | user  | const | PRIMARY,id_unidx | PRIMARY | 4       | const | 1    |       |
  +----+-------------+-------+-------+------------------+---------+---------+-------+------+-------+
  3、explain各个参数解释
  id:select识别符。这个是select查询序列号。这个不重要,查询序号即为sql语句执行的顺序。
  select_type主要有下面几个值:
  simple 它表示简单的select,没有union和子查询
  primary 外面的select,在有子查询的语句中,外面的select查询是primary
  union union语句的第二个或者说是后面那一个.
  dependent union    UNION中的第二个或后面的SELECT语句,取决于外面的查询
  union result        UNION的结果
  table:输出的行所用的表
  type:显示连接使用了何种类型。从好到差的连接类型为const、eq_reg、ref、range、indexhe和all
  const:表多有一个匹配行,const用于比较primary key 或者unique索引。因为只匹配一行数据,所以很快记住一定是用到primary key 或者unique