Heim > Datenbank > MySQL-Tutorial > mysql查询区分大小写高性能

mysql查询区分大小写高性能

WBOY
Freigeben: 2016-06-07 14:55:23
Original
1232 Leute haben es durchsucht

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慎用

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage