Error occur in execute SQL. Caused by: 执行失败:Duplicatecolumnname'examdate'--出现重复的索引就会出这个错误
一般索引(key)
二、索引的使用
1 2 3 4
SHOW INDEX from `result` /*显示表中的所有索引*/ alter TABLE `result` add FULLTEXT INDEX `subjectno`(`subjectno`);/*创建一个新的全局索引*/ EXPLAIN SELECT * FROM `grade` WHERE MATCH(`gradeid`) against('5');/*查找全局索引*/ EXPLAIN SELECT * FROM `grade` WHERE `gradeid` ='5'/*解释分析sql语句*/
/*写一个函数,批量生成一百万条数据*/ DELIMITER $$ -- 写函数之前必须要写,标志 CREATE FUNCTION mock_data () RETURNS INT BEGIN DECLARE num INT DEFAULT 1000000; DECLARE i INT DEFAULT 0; WHILE i<num DO INSERT INTO `app_user`(`name`,`email`,`phone`,`gender`)VALUES(CONCAT('用户',i),'19224305@qq.com','123456789',FLOOR(RAND()*2)); SET i=i+1; END WHILE; RETURN i; END; -- 执行函数 SELECT mock_data() -- 执行此函数 生成一百万条数据
-- 第一种查询方式 直接查询 SELECT * FROM `app_user` WHERE `name`='用户9999'-- 用时:380ms 查询的次数就是表的列数,是利用遍历查询的 -- 第二种查询方式:建立索引来查询 直接建立一个普通索引,直接引用就可以,他会把索引用序号拍起来,下一次直接使用 CREATE INDEX id_app_user_name ON app_user (`name`);-- 用时4ms ;建立普通的索引的话,查询就是查询一次 SELECT * FROM `app_user` WHERE `name`='用户99999' -- 全局索引 语法:SELECT * FROM [表名] WHERE MATCH ([列名]) AGAINST ([属性值])- CREATE FULLTEXT INDEX id_app_user_name ON app_user (`name`); SELECT * FROM `app_user` WHERE MATCH (`name`) AGAINST ('用户9999')-- 用时:6ms