一、数据库索引
1、索引的作用
加快查找数据速度
2、创建索引条件
经常查询列的数据创建索引
跨表查询关联的列数据创建索引
经常对查询结果进行排序分组列数据创建索引
3、索引类型
普通索引:查询频率越高查询速度越快,数据加载到内存中
唯一索引:指定列创建唯一索引指定的索引值不能重复
主键索引:创建表设计主键列自动创建,不允许重复、不能为空
全文索引:对字符串数据类型使用广泛,查询速度频率越高速度越快
单列索引:只能对表的指定列设置索引
多列索引:允许多列数据使用同一个索引值
二、索引的使用
1、创建data数据库
create database data;
2、data库创建表设计表结构
create table data.student (姓名 char(5),性别 char(4),年龄 int,身份证号码 char(18),primary key(身份证号码));
3、查看student表结构
desc data.student;
4、创建索引索引名字是name_index,索引创建的xsh.student表的姓名列
create index name_index on data.student(姓名);
5、创建唯一索引名字id_index,对身份证号码列数据创建唯一索引
create unique index id_index on data.student(身份证号码);
6、表中添加主键功能
alter table data.student primary key (身份证号码);
7、查看创建的索引
show index from data.student;
show keys from data.student;
8、删除创建的索引
alter table data.student drop index id_index;
三、事务
1、事务的作用
对执行的sql命令进行监控运行状态
2、事务状态的类型
成功:存储到数据库表中
失败:回滚到初始状态
3、事务的属性
原子性:事务是一个整体不能分割
隔离性:事务和事务之间相互独立互不影响
持久性:事务不管是故障还是运行都会记录状态
一致性:事务内部会检测运行状态必须到达一致状态保存执行结果有任何一个异常失败回滚
四、事务的基本使用
1、事务的操作指令
begin:开始事务
commit:提交事务
rollback:失败回滚
2、开启事务自动提交
set autocommit=1; //0关闭1是开启
3、使用事务插入数据回滚数据
begin; //启动事务
insert into data.student values ('bob','男',18,'123456789123456789'); //插入数据
select * from data.student; //查询数据
rollback; //回滚
4、插入数据保存数据
insert into xsh.student values ('bob','男',18,'123456789123456789');
commit;
5、配置事务自动提交
set autocommit=1; //开启事务自动提交
begin; //启动事务
insert into data.student values ('bob','男',18,'123456789123876543'); //插入数据
commit; //提交数据
五、Mysql数据库引擎类型
1、MyISAM
Mysql 5.5之前使用的默认数据库引擎
支持高性能读取数据使用
不支持事务
占用内存和存储资源小
不支持Mysql群集功能不支持容错
能够针对表进行锁定防止产生互斥
写入数据阻塞读取,读取数据阻塞写入防止产生互斥
支持缓存事务不支持缓存文件
2、MyISAM数据库文件类型
*.frm文件:存储的是表结构
*.myd文件:存储数据库数据文件
*.myi文件:保存的是索引文件
3、InoDB特点
支持事务高级约束
锁支持限制到表的行
读写阻塞事务隔离
支持高性能读取和写入环境使用
支持数据和索引缓存功能
支持分区和表空间存储数据
5.5数据库以后版本使用InoDB数据库引擎
占用内存资源高减少磁盘I/O使用
六、Mysql数据库引擎优化
1、查看Mysql数据库支持引擎
show engines;
2、查看表使用的数据库引擎类型
show table status from xsh where name='student';
3、修改student表数据库引擎为Myisam
alter table data.student engine='myisam';
4、查看表的数据库引擎类型
show create table xsh.student\G;
七、修改Mysql数据库默认支持的引擎为MyISAM
1、修改主配置文件
[root@centos01 ~]# vim /etc/my.cnf
[mysqld]
default-storage-engine=MyISAM //添加一条
2、重启服务
[root@centos01 ~]# systemctl restart mysqld