首页 > 其他分享 >索引适合建立情况和不适合建索引情况

索引适合建立情况和不适合建索引情况

时间:2023-05-04 17:04:25浏览次数:29  
标签:建立 适合 查询 索引 字段 情况 排序

哪些情况适合建立表索引?

主键自动建立唯一索引
频繁作为查询条件的字段应该创建索引
查询中与其它表关联的字段,外键关系建立索引
单键/组合索引的选择问题,who?(在高并发下倾向创建组合索引)
查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
查询中统计或者分组字段

哪些情况不适合建立表索引?

Where条件里用不到的字段不创建索引
表记录太少(300w以上建)
经常增删改的表(提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件)
数据重复且分布平均的表字段,因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。(比如:国籍、性别)

 

ps:假如一个表有10万行记录,有一个字段A只有T和F两种值,且每个值的分布概率天约为50%,那么对这种表A字段建索引一般不会提高数据库的查询速度。

索引的选择性是指索引列中不同值的数目与表中记录数的比。如果一个表中有2000条记录,表索引列有1980个不同的值,那么这个索引的选择性就是1980/2000=0.99。一个索引的选择性越接近于1,这个索引的效率就越高

标签:建立,适合,查询,索引,字段,情况,排序
From: https://www.cnblogs.com/wanbiao/p/17371775.html

相关文章

  • 批处理查看本机IP配置信息及本机端口号占用情况
    保存以下内容到chkLocalip.bat,可以查看本机IP配置情况@echooff&echo.setlocalif/i"%*"=="/?"goto:HelpPromptif/i"%*"=="-Help"goto:HelpPromptset"nicstr=Index^,Name^,NetConnectionID^,Speed^"set"n......
  • merge的不同情况:
    1、场景1:同事修改了test.txt,提交到远程。我修改了test.txt,接着马上输入gitpull,出现提示:问题:error:Yourlocalchangestothefollowingfileswouldbeoverwrittenbymerge:test.txtPleasecommityourchangesorstashthembeforeyoumerge.AbortingUpdatingb......
  • nginx 开启目录索引及简单用户认证
    目录索引及简单用户认证ngx_http_autoindex_module模块可以支持目录列表浏览,开启方式location/{autoindexon;}开启后就可以通过浏览器访问目录下的文件列表,像很多镜像资源站一样。可以文件浏览下载。这时候如果对某个目录不是所有用户可以访问下载,则可以使用ngx_htt......
  • mysql在删索引时报错ERROR 1075
    问题描述:mysql在删索引时报错ERROR1075,如下所示:数据库:mysql8.0.11系统:centos7.91、问题重现createtabletest_table1(idint(11)notnullauto_increment,namechar(100)notnull,addresschar(100),descriptionchar(100),uniqueindexuniqidx(id),indexmultic......
  • 用alter table添加索引与create index区别
    1、altertable一次可以添加多个索引,createindex一次只能创建一个。创建多个索引时,altertable只对表扫描一次,效率较高。2、altertable可以不指定索引名,此时将使用索引列的第一列的列名;createindex必须指定索引名。因此,altertable添加索引更灵活,所以在创建索引的时候提倡使用a......
  • java基于ssm的超市管理系统、超市销售管理系统,附源码+数据库+文档,适合课设设计、毕业
    1、项目介绍java基于ssm的超市管理系统、超市销售管理系统。本系统的设计是两种用户,一种是普通用户,一种是管理员用户。权限都不一样。主要功能有:添加商品、库存查询、订单管理、商品删除管理、退货管理、销售统计、供应商管理、用户管理、角色管理。项目获取,看这里2、技术框......
  • 索引-性能分析-show profiles
    Sql性能分析:profiles详情:showprofiles能够在做SQL优化时帮助我们了解时间都耗费到哪里去了。通过hava——profiles参数,能够看到当前Mysql是否支持profiles操作执行一系列的业务SQL业务,然后通过如下指令查看指令的执行耗时:#查看每一条SQL的基本耗时情况:showprofiles;#......
  • 6.建立索引
    (1)、修改表结构,列0,编号列1,姓名列2,性别列3,出生日期列4,所在地(2)、将错误的性别修改。(3)、将出生日期修改为datetime类型。(会提示错误)使用函数isdate,检查出生日期是否为日期格式。updateaset出生日期=left(所在地,8)whereisdate(出生日期)=0updateaset出生日期=substr......
  • 【数据预处理&机器学习】对于薪资数据的倾斜情况以及盒图离群点的探究
    一.需求背景课题中心:招聘网站的职位招聘数据预处理之前的文章,我们已经对职位薪资数据进行了爬取(9000条)数据,然后进行了数据的清洗,最终得到了4000条有效数据。具体需求:按不同的类别划分职位中的薪酬数据,画盒图/箱线图,检查孤立点/离群点;使用分位数图、分位数-分位数图方法处理数......
  • mysql创建索引三种方式
    1.新建表中添加索引①普通索引createtablet_dept(nointnotnullprimarykey,namevarchar(20)null,sexvarchar(2)null,infovarchar(20)null,indexindex_no(no))②唯一索引createtablet_dept(nointnotnullprimarykey,......