Mysql常见四种索引的使用

Vitis Model Composer闪退?手把手教你用命令行启动Vivado 2021后的System Generator 本文详细解析了Vitis Model Composer闪退问题的根本原因,并提供了命令行启动Vivado 2021后System Generator的完整解决方案。从环境变量配置、组件缺失排查到权限问题处理,手把手教你通过命令行深度排错,并分享高级自动化脚本和系统优化技巧,帮助开发者高效使用Vitis Model Composer与System Generator进行HDL开发。 阅读详情

提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。

我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引


一. 四种索引(主键索引/普通索引/全文索引/唯一索引)

1.索引的添加

1.1主键索引的添加

当一张表,把某个列设为主键的时候,则该列就是主键索引

    create table a(
    id int primary key auto_increment,
    name varchar(20) not null default ''
    );
    //这里id就是表的主键

如果当创建表时没有指定主键索引,也可以在创建表之后添加:

alter table table_name add primary key (column name);

修改表自增主键的起始值

ALTER TABLE bbs_addr AUTO_INCREMENT =500;

1.2普通索引

普通索引一般是在建表后再添加的,
create index 索引名 on table_name(column1,column2);

alter table table_name add index 索引名(column1,column2);

1.3全文索引

首先,全文索引主要针对文本文件,比如文章,标题,全文索引只有MyISAM有效(mysql5.6之后InnoDB也支持了全文索引)

    create table c(
    id int primary key auto_increment ,
    title varchar(20),
    content text,
    fulltext(title,content)
    )engine=myisam charset utf8;
     
    insert into c(title,content) values
        ('MySQL Tutorial','DBMS stands for DataBase ...'),
        ('How To Use MySQL Well','After you went through a ...'),
        ('Optimizing MySQL','In this tutorial we will show ...'),
        ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
        ('MySQL vs. YourSQL','In the following database comparison ...'),
        ('MySQL Security','When configured properly, MySQL ...');

使用全文索引常见的错误:

select * from c where content like "%mysql%";
这里并不会使用全文索引,可以用explain进行查看。正确用法:

select *  from c where match(title,content) against ('MYSQL');

备注:

1.  在mysql中fulltext 索引只针对 myisam生效

2.  mysql自己提供的fulltext针对英文生效->sphinx(coreseek)技术处理中文

3.  使用方法是 match(字段名..) against(‘关键字’)


1.4唯一索引

create table d(id int primary key auto_increment , name varchar(32) unique)

d表中name就是唯一索引,唯一索引可以有多个null,不能是重复的内容

相比主键索引,主键字段不能为null,也不能重复

添加唯一索引

create [unique|fulltext|spatial]index in_id on test4(id[(长度)][ASC|DESC])

ALTER TABLE bbs_addr ADD [unique|fulltext|spatial] index unique_name(name[(长度)][ASC|DESC])

2. 查询索引

show indexes from table_name;

show keys from table_name;

3.删除索引

alter table table_name drop index 索引名;

drop index 索引名称 on tbl_name


二. 索引的机制

2.1 为什么我们添加完索引后查询速度为变快?

    传统的查询方法,是按照表的顺序遍历的,不论查询几条数据,mysql需要将表的数据从头到尾遍历一遍

    在我们添加完索引之后,mysql一般通过BTREE算法生成一个索引文件,在查询数据库时,找到索引文件进行遍历(折半查找大幅查询效率),找到相应的键从而获取数据

2.2 索引的代价

    1. 创建索引是为产生索引文件的,占用磁盘空间

    2. 索引文件是一个二叉树类型的文件,可想而知我们的dml操作同样也会对索引文件进行修改,所以性能会下降

2.3 在哪些column上使用索引?

    1 .较频繁的作为查询条件字段应该创建索引

    2. 唯一性太差的字段不适合创建索引,尽管频繁作为查询条件,例如gender性别字段

    3. 更新非常频繁的字段不适合作为索引

    4.不会出现在where子句中的字段不该创建索引

总结: 满足以下条件的字段,才应该创建索引.
a: 肯定在where条经常使用 b: 该字段的内容不是唯一的几个值 c: 字段内容不是频繁变化


三.索引使用注意事项

1.对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用。

比如我们对title,content 添加了复合索引

select * from table_name where title = 'test';会用到索引

select * from table_name where content = 'test';不会用到索引

2.对于使用like的查询,查询如果是 ‘%a’不会使用到索引 ,而 like 'a%'就会用到索引。最前面不能使用%和_这样的变化值

3.如果条件中有or,即使其中有条件带索引也不会使用。

4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来。


四.如何查看索引使用的情况:

show status like‘Handler_read%’;

注意:

handler_read_key:这个值越高越好,越高表示使用索引查询到的次数。

handler_read_rnd_next:这个值越高,说明查询低效。

halcon 检测直线 图中后三个对象既是检测出的图像; 阅读详情

相关推荐

STM32与威纶通触摸屏RS485通信实战:Modbus RTU协议与避坑指南

在工业自动化与嵌入式系统开发中,串行通信是实现设备间数据交换的基础技术。RS485总线凭借其差分信号传输、抗干扰能力强、支持多点通信及长距离传输等特性,成为工业现场广泛应用的物理层标准。其核心原理是利用一对双绞线进行平衡传输,有效抑制共模噪声。在协议层,Modbus RTU作为开放、简洁的主从式应用层协议,定义了统一的数据模型(如线圈、寄存器)和功能码,极大简化了不同厂商设备间的互操作性。结合STM32微控制器的UART外设与威纶通(Weinview)人机界面(HMI),可以构建稳定可靠的监控与控制系统。本

weixin_33925615的博客 327

MyBatis配置和使用

本文是对MyBatis配置和使用的介绍,适合新手,本人是在狂神说的视频和阅读文档上自学的,主要内容如下 文章目录一、准备二、建立项目和导包1.建项目2.pom.xml配置3.建立模块三、数据库和连接配置1.建库建表2.建mybatis-config.xml文件3.修改配置4.编写工具包四、查询和测试1.建立pojo文件和相应dao2.配置相应的mapper.xml3.测试五、注意问题1.事务提交问题2.增删改查六、进行优化1.连接信息读取的优化2.别名七、属性名和字段名不一致八、日志1.日志工厂2.lo.

qq_43750301的博客 2932

快衰落、慢衰落,平坦衰落、频率选择性衰落

目录一、大尺度衰落和小尺度衰落二、平坦衰落和频率选择性衰落1.反射墙、固定天线模型2.相干带宽和时延扩展三、快衰落和慢衰落1.反射墙、运动天线模型2.相干时间和多普勒扩展四、联系总结 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、大尺度衰落和小尺度衰落 移动无线信道的主要特征是信道强度关于时间和频率的变化,大致分两种: 大尺度衰落: .

weixin_45662974的博客 3万+

数据库索引

数据库索引 作用 : 提高查询速度 确保数据的唯一性 可以加速表和表之间的连接 , 实现表与表之间的参照完整性 使用分组和排序子句进行数据检索时 , 可以显著减少分组和排序的时间 全文检索字段进行搜索优化. 分类 : 主键索引 (Primary Key) 唯一索引 (Unique) 常规索引 (Index) 全文索引 (FullText) 主键索引 主键 : 某一个属性组能唯一标识一条记录...

qq_44776943的博客 307

VLA算法总结对比——RT1 / RT2 / Pi0 / Octo/ RDT / OpenVLA

本文主要针最近比较经典的VLA算法进行对比总结,暂不涉及到代码细节和实验细节上的展开,仅仅是从大面上掌握下目前VLA的一些思路和方法。

weixin_44580210的博客 9491

浏览器主页被360篡改?教你彻底解决并预防再次发生

通过本文介绍的快捷方式修复、注册表清理、启动项管理三步法,可解决99%的浏览器主页篡改问题。权限最小化原则:非管理员账户日常使用,关键系统目录设置写保护定期安全审计:每月检查启动项/计划任务/浏览器扩展备份还原机制:创建系统还原点,重要操作前做好快照安全意识培养:不安装来源不明的软件,谨慎处理软件安装向导中的附加选项浏览器安全是系统防护的重要环节,建议结合EDR(终端检测与响应)方案构建立体防护体系。对于普通用户,保持系统更新、使用官方渠道下载软件、定期清理系统垃圾,即可有效预防绝大多数安全威胁。

nntxthml的博客 1万+

【javaweb】学习日记Day8 - Mybatis入门 Mysql 多表查询 事务 索引

Mybatis入门 Mysql 多表查询 连接查询 子查询 事务 索引 lombook JDBC 数据库连接池

weixin_61639349的博客 1177

在Termux上安装Kali Linux 完整系统

介绍如何在Termux上安装Kali Linux 完整系统

蓑雨一生的博客 2万+

mybatis怎么加索引?

1,点表,点右键,选设计表,进入如下图的步骤,就加了普通索引: 2,下面这种组合索引,是什么意思? 这种将两个字段都设为索引的作用是: 第一:唯一性。即例如当code和pid的值为3和4的时候,不能再有一条记录code和pid的值也是3和4 第二:以左边为主要,最重要(最左前缀匹配原则)。即当左边那个字段没有值的时候,右边字段有值好像也没用。具体介绍见此网址: https://www.jians...

weixin_43228497的博客 9178

银河麒麟V10 SP3离线安装Nginx1.21.5全记录(附11个rpm包下载清单)

本文详细记录了在银河麒麟V10 SP3操作系统上离线安装Nginx 1.21.5的全过程,包括11个必备rpm包的下载清单。通过分步骤的实战指南,帮助用户在国产化环境中高效部署Nginx服务,涵盖安装、配置、调优及故障排查等关键环节,特别适合金融、政务等对安全性要求高的场景。

weixin_30872337的博客 603

计算机视觉三大顶会(ICCV/CVPR/ECCV)投稿指南与趋势解析

本文详细解析计算机视觉三大顶会(ICCV/CVPR/ECCV)的投稿指南与最新趋势。从基础认知到实战经验,涵盖时间线管理、选题策略、论文写作技巧及实验设计要点,帮助研究者提升投稿成功率。特别关注2024年技术融合、评估维度和伦理要求等前沿趋势,为计算机视觉领域的研究者提供实用建议。

weixin_29165725的博客 1832

Mybatis教程

MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。1、 M

零陵上将军_xdr的博客 1033

【ACP】2025-最新-疑难题解析- 练习二汇总

全球加速是优化公网访问的,负载均衡是分发流量的,公网 NAT 网关是处理公网 IP 的,高速通道是建私网连接但不直接提供固定私网地址功能。C 是客户端加密方式,D 是 ECS 云盘加密,都不属于 OSS 服务器端加密。某企业想使用云服务器 ECS + 负载均衡 SLB + 弹性伸缩 (Auto Scaling) 的架构搭建一个企业级门户网站,技术负责人对于负载均衡和弹性伸缩配合使用没有经验,于是将他理解的两种产品配合使用的一些技术细节列成了一个表单,并请作为架构师的您帮他做一下鉴别,以下哪些项是正确的?

jundao1997的专栏 293

Mysql常见四种索引的使用_Mysql常见四种索引的使用

提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索引的添加当一张表,把某个列设为主键的时...

weixin_32364135的博客 687

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MySQL支持的四种索引_Mysql 四种常见的索引

### Mysql 四种常见的索引提到Mysql​的优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"(select)"查询语句,而如果要提升"查询"的性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引#### 一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索...

weixin_36337389的博客 671

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

mysql中几个常见的索引_Mysql常见四种索引的使用

提到MySQL优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索引的添加当一张表,把某个列设为主键的时...

weixin_34464974的博客 786

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MySQL支持的四种索引_Mysql常见四种索引的使用

提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索引的添加当一张表,把某个列设为主键的时...

weixin_39517054的博客 335

mysql索引类型primarykey_MySQL常见四种索引的使用

原标题:MySQL常见四种索引的使用提到MySQL优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,MySQL索引是必不可少的。接下来总结一下MySQL常见的四种索引。一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索...

weixin_42529148的博客 824

mysql四种常用的索引_Mysql常见四种索引的使用

提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索引的添加当一张表,把某个列设为主键的时...

weixin_28688791的博客 219

mysql linux 使用索引_MySQL常见四种索引的使用

提到MySQL优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,MySQL索引是必不可少的。接下来总结一下MySQL常见的四种索引。一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索引的添加当一张表,把某个列设为主键的...

weixin_39981400的博客 90
上一篇: node中feedback中的index.html
下一篇: node与js与jquery中的each区别
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值