MySQL索引事务

索引

什么是索引

索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。

索引的作用

  • 数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。
  • 索引所起的作用类似书籍目录,可用于快速定位、检索数据。
  • 索引对于提高数据库的性能有很大的帮助

使用场景

要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:

  • 数据量较大,且经常对这些列进行条件查询。
  • 该数据库表的插入操作,及对这些列的修改操作频率较低。
  • 索引会占用额外的磁盘空间。 满足以上条件时,考虑对表中的这些字段创建索引,以提高查询效率。 反之,如果非条件查询列,或经常做插入、修改操作,或磁盘空间不足时,不考虑创建索引。

使用

创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索引。

  • 查看索引
show index from 表名;
  • 创建索引 对于非主键、非唯一约束、非外键的字段,可以创建普通索引
create index 索引名 on 表名(字段名);
  • 删除索引
drop index 索引名 on 表名;

事务

事务的概念

  • 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。
  • 在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。

使用

(1)开启事务:start transaction; (2)执行多条SQL语句 (3)回滚或提交:rollback/commit; 说明:rollback即是全部失败,commit即是全部成功。 用例:

start transaction;
-- 阿里巴巴账户减少2000
update accout set money=money-2000 where name = '阿里巴巴';
-- 四十大盗账户增加2000
update accout set money=money+2000 where name = '四十大盗';
commit;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 验证回文字符串II

    海盗船长
  • Java Script脚本语言入门(上)

    JavaScript没有char数据类型,要表示单个字符,必须使用长度为1的字符串。

    海盗船长
  • 进程间通信

    海盗船长
  • 【DB笔试面试565】在Oracle中,为什么索引没有被使用?

    “为什么索引没有被使用”是一个涉及面较广的问题。有多种原因会导致索引不能被使用。首要的原因就是统计信息不准,第二原因就是索引的选择度不高,使用索引比使用全表扫描...

    小麦苗DBA宝典
  • MySql数据库索引原理

    第二部分结合MySQL数据库中InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。

    哲洛不闹
  • 千万级数据表选错索引导致的线上慢查询事故

    又和大家见面了!又两周过去了,我的云笔记里又多了几篇写了一半的文章草稿。有的是因为质量没有达到预期还准备再加点内容,有的则完全是一个灵感而已,内容完全木有。羡慕...

    Rude3Knife的公众号
  • MySQL选错索引导致的线上慢查询事故复盘

    又和大家见面了!又两周过去了,我的云笔记里又多了几篇写了一半的文章草稿。有的是因为质量没有达到预期还准备再加点内容,有的则完全是一个灵感而已,内容完全木有。羡慕...

    后端技术漫谈
  • MySQL选错索引导致的线上慢查询事故

    又和大家见面了!又两周过去了,我的云笔记里又多了几篇写了一半的文章草稿。有的是因为质量没有达到预期还准备再加点内容,有的则完全是一个灵感而已,内容完全木有。羡慕...

    后端技术漫谈
  • Mysql数据库常见的索引有几种?

    提高数据的搜索速度加快表与表之间的连接速度在信息检索过程中,若使用分组及排序子句进行时,通过建立索引能有效地减少检索过程中所需的分组及排序时间,提高检索效率。

    申霖
  • 面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程

           如果我们需要招个Java方面的高级程序员,一方面看年限(本科3年),具体到数据库方面的技能要求,包括如下三个方面:        第一,是否会...

    用户1153489

扫码关注云+社区

领取腾讯云代金券