MySql中索引学习
程序员文章站
2022-03-28 11:11:17
...
一、使用场景
表:bg_nameplate_info、til_vin_img,两表关联列:vin,需要联合查询,sql如下:
select info.*,imgs.id imgId,imgs.img img_path from bg_nameplate_info info left join til_vin_img imgs
on info.frame_no = imgs.vin where info.is_deleted = 0
and (imgs.img is NULL or LENGTH(imgs.img) = 0)
and info.has_checked = 1
and LOCATE('奔驰', info.brand) > 0
order by info.internal_sort_no asc
40000条数据,没有加索引前,这条语句本地的查询时间差不多在80s左右,如图1
在右表til_vin_img的列vin上加了索引,查询时间差不多1秒左右。
创建索引:
alter table til_vin_img add index nameplate_index(vin)
查看索引:
show index from til_vin_img
删除索引:
drop index nameplate_index on til_vin_img
二、索引原理学习
待补充
上一篇: 法庭内外的几个小故事
下一篇: 数据库索引采用B树和B+树的原因