MySQL索引、事务(数据库管理与高可用)
一、索引的概念
索引:排序的列表,对数据进行快速的查询;
针对不同的产品需求,或者不同的数据库结构,会创建不同的索引;
1:普通索引(默认索引)
2:唯一索引(可以多个)
3:主键索引(只能一个)
4:组合索引(最左查询)
5:全文索引
oracle:B树索引
将表一份为二进行查询;
70
1--35 36--70
1--17 18--35
先把实验环境创建出来:
先创建库;再创建表;
一:创建普通索引;
create index aaa on users(user_name(20));
普通索引创建命令 索引名 users表 哪个列作为索引;索引的大小;尽量和列的大小;保持一致;
如何查看索引;
show create table users\g
使用另外一种创建索引的命令:慎用;此命令是用来修改表的结构的,同时还可以添加索引;
alter table users add index bbb (user_name(20));
另外一种查看索引的方法:
show index from users\G
而且普通索引的类型就是oracle中的B树索引;
第三种创建索引的方法;
在创建表的时候创建索引;
create table t1 ( id int(10) , name char(20) , sex char(2), index ccc (id) );
查看该索引;
二:创建唯一索引
指定创建索引类型(unique)(唯一索引,它的值,要在表中是唯一性的;)
create unique index ddd on t1(id);
第二种创建唯一索引的方法:
创建表的时候创建索引;
create table t2 ( id int(10) , name char(20) , sex char(2), unique eee (id) );
第三种创建唯一索引的方法:
alter命令添加唯一索引;
表的约束:
实体完整性约束(主键)(主键是唯一的,且不能为空。)
域完整性约束(数据类型。)
引用完整性约束(外键一定对应另外一个表的主键。)
用户自定义的完整性(大小约束性。)
三:创建主键索引
主键是创建表的时候声明出来的;
查看主键:
show create table t3\G
四:创建组合索引(特点是一个索引对应多个列;且列与列可以有间隔)
create table t4 (id int(10),name char(20),age int(5),index ggg(id,name,age));
组合索引如何使用?
提供的搜索语句要和索引列对应起来;如果顺序有错误;将不会使用到索引;
五:创建全文索引
全文索引只针对字符串,而数字不能作为全文索引;
create fulltext index hhh on t4 (name);
创建索引的原则;
(1)主键或外键必须有索引
(2)300行以下,没有必要创建索引
(3)经常用于跨表查询,需要有索引
(4)唯一性比较差的列或表不适合建立索引
(5)更新太频繁的列不适合建立索引
(6)经常用where指定的条件进行查询的,适合创建索引
(7)建立索引的列尽量是小字段
索引的维护:
删除,再创建;重建索引;
如何删除索引:
使用drop命令来删除索引;然后指定索引的名称及所在的表;
drop index ggg on t4;
事物:一系列sql语句的集合,这些语句全都指定,要么都不执行;
语句1
语句2
语句3
原子性:
一致性:
隔离性:
持久性:(提交)
内存(数据缓冲区)(可以回滚)
服务器宕机的话,没有来得及写入硬盘的话,数据会丢失;
提交意味着写入硬盘;
硬盘(永久存储)(不可以回滚的)
例:银行转账:
账户1
2000
-1000
=1000
账户2
+1000
如果转账不成功会撤销前面所有的步骤;执行事物之前与执行事物之后要保证一致性。
创建实验环境:
创建一个表;
往表里填写数据,并且关闭自动提交的功能;
然后再提交第二条数据;且随后进行回滚;发现数据没有被及时写入到硬盘中;
位于缓冲区的可以回滚的,写入到硬盘中的数据不可以回滚;
如何手动提交:commit
如何将多个语句写入到事物中;
先使用begin;作为开头;然后中间写语句;最后以提交命令commit做结尾;此时;这些语句就会被及时写入到硬盘中;
创建普通索引的三种方法
创建唯一索引的三种方法
创建主键索引的两种方法
创建组合索引只有一种方法
创建全文索引有三种方法
小结
索引的概念、
索引的作用、
索引的分类、
索引的创建、
索引的查看、
索引的删除
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49439.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!