回答

收藏

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

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

我有一个查询,看起来像:
9 F; {$ [) I+ r; B9 S7 Cselect count(*) from m1WHERE  (m1.`resource` & 1472 );虽然我对资源有索引,但它不使用它。如何优化按位计算。1 o+ k9 t1 h! @7 Z( Y7 }% R
                                                                1 g1 i- Q+ h" z( m; `& ~* h
    解决方案:                                                                ; m# ~* D: Z% {
                                                                我不认为MySQL索引可用于按位操作。
% `, K# u" I% Y  vMySQLPerformance论坛对此进行了一些讨论:http :8 s7 g* T0 }# b) Z3 A7 `6 _5 s
//forums.mysql.com/read.php?24、35318(索引扫描可以按位比较吗?MySQL员工根据每对(事物,设置位置)对一行和一堆连接表。我想它的工作效果在很大程度上取决于你的特定应用程序。
% Y7 j) O/ _+ P- D3 S# D$ X2 H根据http://dev.mysql.com/tech-resources/articles/mysql-set-: T9 G, _$ ?( m: h; h2 U  `
datatype.html的索引,对SET执行相同类型的值操作(通过整数和按位操作实现)是无用的。我曾经想过,如果对位操作进行了任何巧妙的索引优化,它已经应用于SETs了。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则