回答

收藏

优化mysql查询以在Bitwise where索引用于子句上

技术问答 技术问答 257 人阅读 | 0 人回复 | 2023-09-14

我有一个查询,看起来像:& h, U! L0 g6 e( K
select count(*) from m1WHERE  (m1.`resource` & 1472 );虽然我对资源有索引,但它不使用它。如何优化按位计算。
' n, V" `* ~; c$ S' ~) x( Z) H                                                                3 z3 d7 _4 m3 A9 P3 I
    解决方案:                                                               
  K/ G; w5 t4 K" e3 L+ @7 a2 G                                                                我不认为MySQL索引可用于按位操作。
0 w' e, S# J( F0 S* T* J1 Z/ bMySQLPerformance论坛对此进行了一些讨论:http :( |% L2 k: k, @9 L8 z. `$ O
//forums.mysql.com/read.php?24、35318(索引扫描可以按位比较吗?MySQL员工根据每对(事物,设置位置)对一行和一堆连接表。我想它的工作效果在很大程度上取决于你的特定应用程序。' f6 S. P9 r9 Y# p
根据http://dev.mysql.com/tech-resources/articles/mysql-set-) @3 r  p. u/ y# Y1 M
datatype.html的索引,对SET执行相同类型的值操作(通过整数和按位操作实现)是无用的。我曾经想过,如果对位操作进行了任何巧妙的索引优化,它已经应用于SETs了。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则