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原则

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

3,MySQL的事务实现方法

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

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

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

事务处理步骤

mysql索引和锁 mysql索引锁事务_mysql


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

4,数据库索引

1,作用
  1. 提高查询速度
  2. 确保数据的唯一性
  3. 可以加速表和表之间的连接,实现表与表之间的参照完整性
  4. 使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间
  5. 全文检索字段进行搜索优化
2,分类
  1. 主键索引(PRIMARY KEY)
  2. 唯一索引(UNIQUE)
  3. 常规索引(INDEX)
  4. 全文索引(FULLTEXT)
3,主键索引
主键:

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

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

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

4,唯一索引(UNIQUE)
作用:

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

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

快速定位特定数据

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

创建后追加

ALTER TABLE `result` ADD INDEX `ind`(`studentNo`,`subjectNo`)
6,全文索引(FULL TEXT)
作用:

快速定位特定数据

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

5,索引准则

  1. 索引不是越多越好
  2. 不要对经常变动的数据加索引
  3. 小数据量的表建议不要加索引
  4. 索引一般应加在查询条件的字段