MySQL----------事务和索引

tech2023-02-25  124

MySQL

1,MySQL的事务处理2,事务的ACID原则3,MySQL的事务实现方法事务处理步骤 4,数据库索引1,作用2,分类3,主键索引主键:特点: 4,唯一索引(UNIQUE)作用:与主键索引的区别 5,常规索引(INDEX)作用:注意: 6,全文索引(FULL TEXT)作用:注意: 5,索引准则

1,MySQL的事务处理

事务就是一组SQL语句放在同一个批次内去执行 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行 注意: MySQL事务处理只支持InnoDB和BDB数据引擎

2,事务的ACID原则

原子性(Atomic):事务中的一组SQL语句不能单独执行某一条SQL语句,要么全部成功,要么全部失败一致性(Consist):确保数据库能正确的改变状态后,才提交事务隔离性(Isolated):每个事务之间是互不影响的持久性(Durable):事务一旦提交成功对数据的影响是持久的

3,MySQL的事务实现方法

MySQL默认是自动提交事务的,使用事务事先关闭自动提交

使用SET 语句来改变自动提交模式

SET AUTOCOMMIT=0; #关闭自动提交模式 SET AUTOCOMMIT=1; #开启自动提交模式

事务处理步骤

首先使用 SETAUTOCOMMIT=0;关闭MysQL的自动提交,然后使用START TRANSACTION;开始一个事务,标记事务的起始点,如果事务成功使用COMMIT;提交一个事务给数据库,如果有一条语句执行不成功就是用ROLLBACK;将事务回滚,所有COMMit中的操作将被取消,无论事务成功还是失败都要使用SET AUTOCOMMIT=1;来还原MySQL数据库的自动提交

4,数据库索引

1,作用

提高查询速度确保数据的唯一性可以加速表和表之间的连接,实现表与表之间的参照完整性使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间全文检索字段进行搜索优化

2,分类

主键索引(PRIMARY KEY)唯一索引(UNIQUE)常规索引(INDEX)全文索引(FULLTEXT)

3,主键索引

主键:

某一个属性组能唯一标识一条记录

特点:
最常见的索引类型确保数据记录的唯一性确定特定数据记录在数据库中的位置 示例: CREATE TABLE `表名`( `GradelID` INT(11) AUTO_INCREMENT PRIMARY KEY, #或 PRIMARY KEY(`GradelID`) )

注意:添加主键的时候自带主键索引

4,唯一索引(UNIQUE)

作用:

避免同一个表中某数据列中的值重复

与主键索引的区别
主键索引只能有一个唯一索引可有多个 示例: CREATE TABLE `Grade`( `GradeId` INT(11) AUTO_INCREMENT PRIMARY KEY, `GradeName` varchar(32) NOT NULL UNIQUE #或 UNIQUE KEY `GradeId` (`GradeId`) )

5,常规索引(INDEX)

作用:

快速定位特定数据

注意:
index和key关键字都可设置常规索引应加在经常被当做查找条件的字段不宜添加太多常规索引,影响数据的插入,删除和修改操作 创建表时添加常规索引: CREATE TABLE `result`( //省略一些代码 INDEX/KEY `ind` (`studentNo`,`subjectNo`) )

创建后追加

ALTER TABLE `result` ADD INDEX `ind`(`studentNo`,`subjectNo`)

6,全文索引(FULL TEXT)

作用:

快速定位特定数据

注意:
只能用于MyISAM类型的数据表只能用于CHAR VARCHAR TEXT数据列类型适合大型数据集 示例: CREATE TABLE `student`( FULLTEXT(`StudentName`) )ENGINE=MYISAM;

5,索引准则

索引不是越多越好不要对经常变动的数据加索引小数据量的表建议不要加索引索引一般应加在查询条件的字段
最新回复(0)