我的mysql有张表,用户名username的字段建立了唯一性索引,因为用户名要求是唯一的,主键是id,为递增的,记录数大概有30w条;结果发现使用sqlyog查询记录的时候,sqlyog就挂掉了,未响应,必须要结束进程才能关闭sqlyog,但是mysql数据库是好的;
sqlyog版本是MYSQL GUI 企业版 8.14
查询脚本:select * from company where username='XXXX';开始以为是自己那条记录中的字段插入了不符合规则的字符,我自己测试,折腾了很多次之后终于发现,我把username的唯一性索引删掉之后,使用sqlyog查询一切正常;如果我删掉唯一性索引,建立普通索引,查询也是一切正常这到底是怎么回事呢?有没有人遇到呢?
sqlyog版本是MYSQL GUI 企业版 8.14
查询脚本:select * from company where username='XXXX';开始以为是自己那条记录中的字段插入了不符合规则的字符,我自己测试,折腾了很多次之后终于发现,我把username的唯一性索引删掉之后,使用sqlyog查询一切正常;如果我删掉唯一性索引,建立普通索引,查询也是一切正常这到底是怎么回事呢?有没有人遇到呢?
要是有重复的 mysql会报错的,我是后来创建的唯一性索引,当时也是有重复的,报错的时候我把那些重复的都删了
用什么工具呢?我用explain试过,如下查询用户:
EXPLAIN SELECT username,LENGTH(introduce) FROM de_company WHERE username='wxchangh0878';
id,select_type,table,type,possible_keys,key,key_len,ref,rows,Extra
"1","SIMPLE","company","const","username","username","62","const","1",""
EXPLAIN SELECT * FROM company WHERE username='wxchangh0878';
id,select_type,table,type,possible_keys,key,key_len,ref,rows,Extra
"1","SIMPLE","company","const","username","username","62","const","1",""