INSERT INTO `student` VALUES ('1', '赵雷', '23', '男');
INSERT INTO `student` VALUES ('2', '钱电', '22', '男');
INSERT INTO `student` VALUES ('3', '穷奇', '12', '男');
INSERT INTO `student` VALUES ('4', '饕鬄', '23', '男');
INSERT INTO `student` VALUES ('5', '周梅', '45', '女');
INSERT INTO `student` VALUES ('6', '吴兰', '12', '女');
INSERT INTO `student` VALUES ('7', '郑竹', '43', '女');
INSERT INTO `student` VALUES ('9', '张三', '33', '女');
INSERT INTO `student` VALUES ('10', '李四', '44', '女');
INSERT INTO `student` VALUES ('11', '李四', '24', '女');
INSERT INTO `student` VALUES ('12', '赵六', '54', '女');
INSERT INTO `student` VALUES ('13', '孙七', '23', '女');
INSERT INTO `student` VALUES ('14', '青龙', '12', '男');
INSERT INTO `student` VALUES ('15', '白虎', '34', '女');
INSERT INTO `student` VALUES ('16', '梼杌', '54', '男');
复制代码
3.2创建索引:
下面是创建索引的语法,各位小伙伴可以一起来试一试。
语法:
CREATE [UNIQUE|FULLTEXT] INDEX 索引名称
[USING 索引类型] -- 默认是B+TREE
ON 表名(列名...); 注意: 如果一个表中有一列是主键,那么就会默认为其创建主键索引!(主键列不需要单独创建索引)。 举个栗子:
-- 为student表中姓名列创建一个普通索引
CREATE INDEX idx_name ON student(Sname);
-- 为student表中年龄列创建一个唯一索引
CREATE UNIQUE INDEX idx_age ON student(Sage);
复制代码
3.3查看索引
创建完索引后可以进行查看索引,如下:
语法:SHOW INDEX FROM 表名;
-- 查看student表中的索引
SHOW INDEX FROM student;
复制代码
3.4删除索引
最后是删除索引语法和案例:
语法:DROP INDEX 索引名称 ON 表名;
-- 删除student表中的idx_score索引DROP INDEX idx_score ON student;-- 查看student表中的索引
SHOW INDEX FROM student;
复制代码
4. 索引效率的测试
下面是创建product商品表,并添加100万条数据做测试。
[code]-- 创建product商品表CREATE TABLE product( id INT PRIMARY KEY AUTO_INCREMENT, -- 商品id NAME VARCHAR(10), -- 商品名称 price INT -- 商品价格);-- 定义存储函数,生成长度为10的随机字符串并返回DELIMITER $CREATE FUNCTION rand_string() RETURNS VARCHAR(255)BEGINDECLARE big_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ';DECLARE small_str VARCHAR(255) DEFAULT '';DECLARE i INT DEFAULT 1;WHILE i