青岛网站设计皆挺青岛博采网络,wordpress404页面更爱,邢台建设局官方网站,公司网站建设西安数据库索引与事务 索引 概念 一个排序的列表#xff0c;为了实现对表的快速查询#xff08;类似于目录#xff09;#xff0c;把一个列作为索引。 对于有序的列表#xff0c;就可以使用二分法进行快速查询#xff0c;也叫B树查询。 如果没有索引#xff0c;那么就会遍历… 数据库索引与事务 索引 概念 一个排序的列表为了实现对表的快速查询类似于目录把一个列作为索引。 对于有序的列表就可以使用二分法进行快速查询也叫B树查询。 如果没有索引那么就会遍历整个表横着一个一个。 优点 大大提高了查询的速度 提高跨表查询的速度 降低服务器IO的成本排序成本 缺点 消耗额外的磁盘空间索引列的字符数越多消耗存储资源越大 划分 物理角度 聚簇索引 比如电话簿目录后直接附加内容不需要额外寻找适合主键索引同一个表只能有一个聚簇索引。 非聚簇索引 比如书的目录找到对应的目录后还得去翻到相应页才能看到内容这就是非聚簇索引同一个表可以有多个非聚簇索引。 逻辑角度常见的索引 普通索引 也就是默认索引默认采用B树索引 唯一索引 索引列的值必须唯一允许为空可以有多个 主键索引 索引列的值唯一且不能为空只能有一个 组合索引最左前缀 将多个列共同组成一个索引需要注意搜索时的顺序必须与创建组合索引时的顺序一致。 全文索引fulltext 主要针对文本类的消耗资源最多 创建 一般创建方式 在创建时创建 alter添加索引 创建时指定索引 普通索引 创建索引 create index 索引名称 on 表名 哪一列长度 修改表结构 alter table 表名 add index 索引名哪一列长度 创建时指定 create table t1 id int10name char20index 索引名哪一列长度 唯一索引 创建索引 create unique index 索引名 on 表名那一列长度 修改表结构 alter table 表名 add unique index 索引名哪一列长度 创建时指定 create table t1 id int10name char20unique index 索引名哪一列长度 主键索引 一个表只能有一个主键在创建时指定主键时就同时创建 指定主键primary key 列名 组合索引 create table t1 id int10name char20index 索引名列名列名。。。 需要注意使用组合索引时必须按照创建时的顺序 全文索引 针对整个文本消耗存储资源大 创建索引 create fulltext index 索引名 on 表名那一列 创建依据 表的主键、外键必须有索引。因为主键具有唯一性外键关联的是子表的主键查询时可以快速定位。 记录数超过300行的表应该有索引。如果没有索引需要把表遍历一遍会严重影响数据库的性能。 经常与其他表进行连接的表在连接字段上应该建立索引。 唯一性太差的字段不适合建立索引。 更新太频繁地字段不适合创建索引。 原本的索引会失效造成浪费 经常出现在 where 子句中的字段特别是大表的字段应该建立索引。索引应该建在选择性高的字段上。 索引应该建在小字段上对于大的文本字段甚至超长字段不要建索引。 索引维护 重建 删除索引 drop index 索引名 on 表名 事务 一系列sql语句的集合要么这些语句全都执行要么全都不执行 特性 原子性不可分割性 一致性 类似于能量守恒这边有所减少对应的应该有所增加。 独立性 多个事务并发进行在排除数据关联性的前提下应互不干扰。 持久性 事务对数据的影响应该是持久性 怎么使用 begin sql语句序列 commit 注意事项 有些版本默认开启了自动提交功能可以将其关闭 set autocommit0 rollback是将整个事务回滚。 保存点 savepoint 保存点名称 通过rollback to 保存点名称