二进制与普通文本匹配的性能

时间:2015-02-05 20:31:33

标签: mysql sql

以下两个查询有什么区别?

SELECT * FROM table WHERE value = 'hello';
- and -
SELECT * FROM table WHERE BINARY value = 'hello';

mysql'如何知道'除非指定二进制,否则在进行匹配时忽略大小写?在进行二分查找时,性能开销是否有任何增加?

1 个答案:

答案 0 :(得分:1)

使用二进制比较的二元运算符比较字符串。

假设你有表demo

mysql> select * from demo;
+----+------+
| id | name |
+----+------+
|  1 | Foo  |
|  2 | FOO  |
|  3 | Bar  |
+----+------+

如果您选择行:

SELECT * FROM demo WHERE name = 'Foo';

您将收到两条带有ID 1和2的记录。

当您使用BINARY类型为:

SELECT * FROM demo WHERE name = BINARY 'Foo';

您只会收到一条记录 - id = 1。

Docs BINARY