1,使用 union all 代替or
2,尽量避免判null操作 给该列附上默认值
3,索引失效的情况:
1,在where 后面使用 != <>
2, 使用 in, 考虑使用 between and 或者 exists 进行替代
3,like ‘%xx%’ 也会使索引失效
4, where 后面对字段进行函数或者表达式操作
4, 建立索引的合理性:
1,不要在简单语句列建立索引 比如sex 字段
2,不要建立过多的索引 最好一张表的索引不要超过六个
5,尽量使用数字进行比较,因为使用字符串数据库会逐个比较每一个字符,而数字类型只需要比较一次就够了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
判断表中是否存在数据 select top(1) id from product
优化表连接:
1,减少连接数
select * from
( (select * from orde where OrderId>10000) o left join orderproduct op on o.orderNum=op.orderNum )
select * from
( orde o left join orderproduct op on o.orderNum=op.orderNum )
where o.OrderId>10000
--------------------------------------------------------------------------------------------------------------
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
alter table tab add index idx_pn(name(9)) --单独前缀索引 9 为匹配前缀的数目
alter table tab add index idx_cpn(count, name(9)) --复合前缀索引
force index 强制使用索引
| ALL | 全表扫描
| index | 索引全扫描
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载