mysql - 有四个字段的复合索引,需要用到三个
问题描述
我有以下索引:
ALTER TABLE mytable ADD INDEX (first, last, age, gender)
年龄是一个可为空的字段。
我还运行了两个查询:
SELECT * FROM mytable WHERE first=x and last=y and age=z
和:
SELECT * FROM mytable WHERE first=x and last=y and age=z and gender=w
我如何确保两个查询都使用相同的索引?有没有办法传递“假值”或其他东西,所以它总是返回真,例如:
SELECT * FROM mytable WHERE first=x and last=y and age=z and gender=*
这样它就可以自动使用我创建的 4-index。最好的方法是什么?
解决方案
索引中的键从左到右使用。你所有的条件都是平等的,所以两者都应该使用索引。
MySQL文档很好地解释了如何使用索引。
推荐阅读
- powershell - 团队:Invoke-Webrequest 向团队发送 base64 字符串 (png)
- python - 遍历numpy数组以在字典中使用
- python - Python 将回车视为换行符。我能做些什么呢?
- javascript - 比较 2 个对象数组中的特定键
- c# - 如何使用 Prism.Forms 框架从普通页面导航到 MasterDetailPage?
- deployment - 为什么在 minikube 中正确部署服务时,应用程序部署状态为“Available:0”?
- html - 如何在有课程的 td 中获取内容?
- python - Tensorflow toco 工具将 Conv2D 转换为 DepthwiseConv2DNative,但简化图不会产生与原始图相同的结果
- c++ - 为什么现代 C++ 仍然使用 int argc, char** argv 保留旧的 C 风格原型
- r - 在编写 R 函数时使用多个空参数的最佳实践