idea内置数据库DataGrip + 索引
创建索引前后搜索速度差别
一般是在创建表的时候创建索引,但表里又数据之后也可以创建,且索引值只需要创建一次
-- 为数据库表tb_emp的name字段创建名为idx_emp_name的索引
create index idx_emp_name on tb_emp(name);
-- 查询索引
show index from tb_emp;
-- 删除索引
drop index idx_emp_name on tb_emp;
查询结果
其中第一条为创建的 primary key的索引
其中第二条为创建的 unique的索引
其中第三条为创建的 外键的索引
其中第四条为刚刚创建的索引
优点:
1.提供数据查询的效率,降低数据库io成本
2.通过索引对数据库进行排序,降低数据排序成本,降低cup消耗
缺点:
1.索引回占用空间(但其实占不了多少且限制本身存储空间也不小)
2.索引提供查询效率,但回假想敌增删改的效率(实际企业中查询频次比增删改多得多)
MySQL的索引结构比较多,但通常情况下指的是 b+tree
特点:
1.每一个节点可以存储对各key(有n个key,就有n个指针。树一般在三到四层)
2.所有数据都存储在叶子节点,非叶子节点仅用于索引数据
3.叶子节点形成双向链表,便于数据的排序以及区间范围的查询
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通