视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql查询区分大小写高性能
2020-11-09 16:15:46 责编:小采
文档


mysql查询默认是不区分大小写的 如: 1 2 3 4 5 6 7 a href=/tags.php/select/target=_blankselect/a*fromtable_namewherealike'a%' select*fromtable_namewherealike'A%' select*fromtable_namewherealike'a%' select*fromtable_namewherealike'A%' 效果

mysql查询默认是不区分大小写的 如:

1

2

3

4

5

6

7

select * from table_name where a like 'a%'

select * from table_name where a like 'A%'

select * from table_name where a like 'a%'

select * from table_name where a like 'A%'

效果是一样的。

要让mysql查询区分大小写,可以:

1

2

3

4

5

6

7

select * from table_name where binary a like 'a%'

select * from table_name where binary a like 'A%'

select * from table_name where binary a like 'a%'

select * from table_name where binary a like 'A%'

也可以在建表时,加以标识

1

2

3

4

5

6

7

8

9

10

11

create table table_name(

a varchar (20) binary

)

create table table_name(

a varchar(20) binary

)

测试30W数据

1

SELECT * FROM `tableName` WHERE ( BINARY weixin = 'value' ) LIMIT 1;

不支持索引,查询效率底下,不建议考虑。上面这些sql语句乍看不会有什么问题,但是当表中的数据多了以后,问题就会凸显出来,用不到索引,就会导致查询效率非常低下。

支持索引,查询效率高(推荐使用)

1

SELECT * FROM `tableName` WHERE weixin = 'value' COLLATE utf8_bin LIMIT 1;

查询分析如下:



通过以上描述可以很清晰的看到两个sql在效率上的根本区别,binary慎用

下载本文
显示全文
专题