gpt4 book ai didi

mysql - 使用非索引和复合索引

转载 作者:行者123 更新时间:2023-11-29 10:28:55 25 4
gpt4 key购买 nike

我有疑问是否有包含 3 列(名字、姓氏、地址)作为 string/varchar(255) 的表

我将 my_idx 与 2 列组合

CREATE INDEX my_idx ON my_table (firstname,lastname)

如果我使用sql,它会使用我定义的索引吗?

select * from my_table where address="zzz" and firstname="xxxx" and lastname="yyyy"

或者我应该使用索引列作为最左边的第一个条件

select * from my_table where  firstname="xxxx" and lastname="yyyy" and address="zzz" 

谢谢

最佳答案

首先:如果您在查询前添加关键字“EXPLAIN”,它将打印出它可能使用的所有索引以及 MySQL 选择的索引。据我了解,是的,它将使用索引。查询中字段的顺序不相关。

重要的是索引中的顺序,但前提是您未在查询中提供所有字段(或对值应用函数或对字符串的其余部分使用类似运算符)。例如,如果您仅查询lastname,则无法使用索引。如果您只查询firstname,则将使用索引。如果您查询 firstnameaddress,将使用索引等等...

关于mysql - 使用非索引和复合索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47807646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com