找别人做网站 自己管理,四川住房和城乡建设部网站首页,网站建设专员一定要会网站建设吗,柳州营销网站建设文章目录 一、索引1.1 概念1.2 作用1.3 使用场景1.4 使用 二、事务2.1 为什么要使用事务2.2 事务的概念2.3 事务的使用 三、内容重点总结 一、索引
1.1 概念
索引是一种特殊的文件#xff0c;包含对数据表所有记录的引用指针。在MySQL中#xff0c;索引是基于一个或多个列的… 文章目录 一、索引1.1 概念1.2 作用1.3 使用场景1.4 使用 二、事务2.1 为什么要使用事务2.2 事务的概念2.3 事务的使用 三、内容重点总结 一、索引
1.1 概念
索引是一种特殊的文件包含对数据表所有记录的引用指针。在MySQL中索引是基于一个或多个列的数据结构是一种数据库对象它们存储有序的键值对其中键是列的值而值是指向表中数据行的物理位置。可以对表中的一列或多列创建索引并指定索引类型各类索引有各自的数据结构实现。
1.2 作用
数据库中的表、数据、索引之间的关系类似于书架上的图书、书籍内容、书籍目录的关系。索引可用于快速定位检索数据加快查询的速度避免对表进行遍历是对查询操作的优化手段 索引能提高查询的速度但也会有一定的代价 占用更多的空间生成索引需要一系列的数据结构和额外的数据来存储到硬盘空间中可能会降低插入、更新和删除操作的速度
1.3 使用场景
考虑对数据库中表的某列或某几列创建索引需要考虑以下几点
数据量较大经常对列进行条件查询该表的插入和对这些列的修改操作频率较低索引会占用额外的磁盘空间 满足上述条件考虑对表中这些字段创建索引来提高查询效率但如果不是条件查询列或者经常使用插入、修改操作或者磁盘空间不足时不考虑创建索引
1.4 使用
创建主键约束PRIMARY KEY、唯一约束UNIQUE、外键约束FOREIGN KEY时会自动创建对应列的索引
查看索引 show index from 表名; -- 查看学生表已有的索引
show index from student;创建索引 要创建索引的列是非主键、非唯一约束、非外键的字段 create index 索引名 on 表名(列名) -- 创建课程表中name 字段的索引
create index idx_course_name on classes(name);删除索引 自动创建的索引不能删除 drop index 索引名 on 表名; -- 删除课程表中name字段的索引
drop index idx_course_name on course;拓展 索引保存的数据结构主要为B树N叉搜索树及hash的方式。 在查询的时候直接从根节点出发判断当前要查的数据在节点上的那个区间中决定下一步向哪走进行添加和删除元素可能涉及节点的拆分和合并
二、事务
2.1 为什么要使用事务
-- 创建一个银行账户的表
create table accout(id int primary key auto_increment,name varchar(20) comment 账户名称,money decimal(11,2) comment 金额
);
-- 插入数据
insert into accout(name, money) values(张三,10000),(李四,10000);现在要实现张三向李四转账1000元
-- 张三账户减少1000
update accout set moneymoney-1000 where name 张三;
-- 李四账户增加1000
update accout set moneymoney1000 where name 李四;如果在执行第一个update 语句时程序或者数据库崩溃了或者是机器断电了张三帐户会减少1000但李四账户没有增加1000金额此时就需要使用事务来控制保证两条update语句要么都执行成功要么都执行失败。
2.2 事务的概念
事务是指逻辑上的一组操作组成这个操作的单元要么全部成功要么全部失。在不同环境中都可以有事务而对应在数据库中的就是数据库事务。 以2.1 例子来说事务就是将这要实现的业务操作进行打包成一个整体这个整体中的操作要么都成功要么都失败需要返回事务开始前的状态即回滚保证数据的一致性和完整性
2.3 事务的使用
开启事务start transaction;执行多条SQL语句回滚或提交rollback / commit
开启事务后单独执行的每个 sql 都是独立的这些sql 之间没有原子性‘提交事务是使用 commit 将事务的操作持久化保存到数据库中。 当出现错误或异常情况时可以使用 rollback 语句撤销事务中的所有更改。也就是说当执行 rollback 时MySQL会撤销所有未提交的事务并回滚到事务开始之前的状态回滚只适用于尚未提交的事务一旦事务被提交就无法再进行回滚操作。
拓展
三、内容重点总结
索引 索引是基于一个或多个列的数据结构是一种数据库对象它们存储有序的键值对其中键是列的值而值是指向表中数据行的物理位置。 插入和删除数据频繁的表不适用索引对某列修改频率高的该列不适合用索引某列或某些列条件查询频率高的可以对这些列创建索引 查看索引 show index on 表名 创建索引 create index 索引名 on 表名(列名) 删除索引 drop index 索引名 on 表名 事务 事务是指逻辑上的一组操作组成这个操作的单元要么全部成功要么全部失败 开启事务 start transaction 执行多条SQL语句 提交或回滚事务 commit / rollback