组合索引要符合leftmost prefix规则,前导列是范围的,后续列条件不能index access,只能index filter... 但是貌似有例外: MySQL的like后通配,between,>=,=1 and b>3,“如果a是整数” 然后索引访问实际上是拆成两份:a=1 and b>3 和a>1 and b>3,前者能真正用到两个列索引访问,后者只能用到a>1 那么,如果存在a>1的数据很少,a=1的数据多,但是a=1 and b>3的数据少, 那么where a>=1 and b>3就比a>0 and b>3的效率高,因为写成 a>0 and b>3则只能用到a>0,而a>0是等价于a>=1的。。。但是实际上访问效率不一样,【阅读全文】
合理设计表结构。遵循数据库范式,减少数据冗余。例如,在设计用户表时,将常用信息与不常用信息分开存储,避免表过大。同时,为频繁查询的字段添加索引,如在WHERE子句中经常使用的字段。创建索引CREATE INDEX idx_username ON users(username); ,加快查询速度。调整数据库参数。根据服务器硬件配置和业务需...【阅读全文】