首页 > 数据库 >数据库优化 索引(index)

数据库优化 索引(index)

时间:2024-04-27 23:22:23浏览次数:23  
标签:index -- 数据库 索引 emp 表名 字段名

介绍

索引是帮助数据库高效获取数据数据结构

image

优缺点:
优点:

  1. 提高数据查询的效率,降低数据的IO成本。
  2. 通过索引列多数据进行排序,降低数据排序的成本,降低CPU消耗

缺点:

  1. 索引会占存储空间。
  2. 索引大大提高了查询效率,同时却也降低了insert、update、delete的效率

结构

MySql数据库支持的索引结构有很多,如:Hash索引、B+Tree索引、Full-Text索引等。我们平常所说的索引,如果没有特别指明,都是默认的B+Tree结构组织的索引。
image

B+Tree(多路平衡搜索树)

image

  • 每个节点,可以存储多个key(有n个key,就有n个指针)
  • 所有的数据都存储在叶子节点,非叶子节点仅用于索引数据
  • 叶子几点形成了一个双向链表,便于数据的排序及其区间范围查询

操作

语法

  • 创建索引
    create [unique] index 索引名 on 表名(字段名,字段名,...);

  • 查看索引
    show index from 表名;

  • 删除索引
    drop index 索引名 on 表名;

点击查看代码
-- 创建索引
-- create [unique] index 索引名 on 表名(字段名,字段名,...);
create  index idx_emp_name on tb_emp(name);


-- 查看索引
-- show index from 表名;
show index from tb_emp;

-- 删除索引
-- drop index 索引名 on 表名;
drop index idx_emp_name on tb_emp;

image

注意事项
第一个索引为主键索引,设置id属性为主键时自动创建
第二个为唯一性索引,创建表时为属性设置unique(唯一性约束)时,自动创建

小结

image

标签:index,--,数据库,索引,emp,表名,字段名
From: https://www.cnblogs.com/21MINM/p/18162699

相关文章

  • MySQL-索引优化实战
     针对联合索引来说,如果第一列就是用范围查询,例如大于小于这些,就会认为查询的行很多,如果不是覆盖索引,那么就不再使用这个二级索引,认为使用二级索引还要频繁的去回表查询等等,消耗更大,所以就会去全表扫描。但是可以使用forceindex(索引名称)去强制使用指定的索引,但是一般不建议这......
  • MySQL(1)-索引底层为什么用B+树
    最近在看面经,发现有很多跟B+树相关的问题,为此需要单独总结一下让自己形成一个体系。核心内容是为什么MySQL采用B+树作为索引?|小林coding所以可以直接看小林code的讲解,很到位。进入正题前,首先要对B树、B+树、二分查找树、自平衡二叉树、索引这些概念了初步解再分析具体问题......
  • ubuntu18源码安装postgresql15.2数据库
    由于官方的源只能安装到pg10这个版本,整了好一会没有成功就改为源码安装了。下载源代码源码并解压wgethttps://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.gztar-xfpostgresql-15.2.tar.gzcdpostgresql-15.2/安装C++相关开发库和编译工具aptinst......
  • 使用 @NoRepositoryBean 简化数据库访问
    在SpringDataJPA应用程序中管理跨多个存储库接口的数据库访问逻辑可能会变得乏味且容易出错。开发人员经常发现自己为常见查询和方法重复代码,从而导致维护挑战和代码冗余。幸运的是,SpringDataJPA为这个问题提供了一个强大的解决方案:@NoRepositoryBean 注解。在本文中,我们......
  • 数据库中间件-He3Proxy
    什么是数据库中间件?随着互联网行业的蓬勃发展,业务访问量、数据量激增,传统数据库的单库、大表已成为业务发展的瓶颈,进而衍生出数据库主从实例、分库分表等方案,为减少数据库层变动对业务开发带来的复杂性,一种连接应用与数据库桥梁的工具孕育而生,即数据库中间件,它可以简单读写分离、......
  • 深入mysql索引
    1.索引索引是对数据库表中一列或多列的值进行排序的一种结构。 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。简单类比一下,数据库......
  • Fast Training Algorithms for Deep Convolutional Fuzzy Systems With Application t
    类似深度卷积神经网络DCNN,模糊系统领域有个深度卷积模糊系统deepconvolutionalfuzzysystem(DCFS),每一层都是一个模糊系统,上一层的输出是下一层的输入。这篇论文目的是加速DCFS的计算速度,解决可解释性1990年提出,也用反向传播训练DCFS受困于低维度小数据集,大数据量时计算负担太......
  • access数据库批量更新中无法使用replace,出现“表达式中 'replace' 函数未定义”的替代
    如果我们想要批量修改数据库table_name表中aa字段中数据,将“|bbbb”删除sql的批量更新中,通用语法是:UPDATEtable_nameSETaa=REPLACE(aa,'|bbbb','')但是,如果是access数据库,就可能出现以下的报错信息:MicrosoftJETDatabaseEngine错误'80040e14'表达式中'replace'函......
  • 陈畅亮搞的专利在Windows上利用加解密DLL模块对数据库连接字符串进行加解密
    陈畅亮搞的专利在Windows上利用加解密DLL模块对数据库连接字符串进行加解密  这种专利权人是公司,个人是发明人,专利年费是申请人先垫付,然后公司报销了,这个专利本身就不属于员工的这个是公司是专利权人, 使用权是公司,如果想要维持权利的话,需要缴纳年费,专利发明现在一个市......
  • 在数据库的查询与更新中,CHARINDEX与instr的区别?
    在数据库和字符串处理的领域中,CHARINDEX和INSTR是两个常用的函数,它们都用于查找子字符串在主字符串中的位置。尽管这两个函数在功能上有所重叠,但它们之间存在一些关键的区别,这些区别可能会影响开发者在选择使用哪一个函数时的决策。首先,CHARINDEX是SQLServer中的一个内置函数,它......