MySQL数据库运算符优先等级和常见的函数以及对MySQL事务和索引的理解

目录

1,数据库运算符优先等级

2,MySQL常见事务的函数

3,MySQL事务和索引


1,数据库运算符优先等级

1,括号:最高优先级,可以用括号改变运算顺序。

2,一元减号(负号):用于表示负数。

3,乘法、除法和取模:*/%

4,加法和减法:+-

5,比较运算符:=><>=<=<>!=

6,逻辑非:NOT

7,逻辑与:AND&&

8,逻辑或:OR||

9,BETWEENCASEWHENTHENELSEEND

10,LIKEINIS NULLIS NOT NULL

11,位运算符:&|^<<>>

12,逻辑 XOR:XOR

13,赋值运算符:=+=-=*=/=%=&=|=^=<<=>>=.

14,IS 运算符:IS [NOT]

15,NULL 安全的等于运算符:<=>

16,REGEXP:用于进行正则表达式匹配。

17,INTERVAL:用于处理日期和时间的间隔。

18,COLLATE:用于指定字符集的排序规则。

19,DIV:整除运算符。

20,UNION:用于合并多个 SELECT 语句的结果集。

21,EXISTS:用于检查子查询是否返回值。

22,ANY/SOME 和 ALL:子查询的比较操作符。

2,MySQL常见事务的函数

  1. BEGINSTART TRANSACTION:开始一个新的事务。
  2. COMMIT:提交当前事务,将所有已执行的操作保存到数据库。
  3. ROLLBACK:回滚当前事务,撤销自上次提交以来的所有操作。
  4. SAVEPOINT:在事务中创建一个保存点,可以在事务回滚时恢复到该保存点。
  5. ROLLBACK TO:将事务回滚到指定的保存点。
  6. RELEASE SAVEPOINT:释放指定的保存点,释放后不能再回滚到该保存点。
  7. SET TRANSACTION:用于设置事务的隔离级别和其他属性。例如,SET TRANSACTION ISOLATION LEVEL 可以设置事务的隔离级别。

  8. AUTOCOMMIT:用于控制是否自动提交事务。默认情况下,每条语句都会被当作一个独立的事务并自动提交,但可以使用 SET AUTOCOMMIT 来更改这一行为。

  9. @@GLOBAL.tx_isolation@@SESSION.tx_isolation:这些系统变量用于获取或设置全局和会话级别的事务隔离级别。

  10. @@GLOBAL.autocommit@@SESSION.autocommit:这些系统变量用于获取或设置全局和会话级别的自动提交状态。

  11. 保存点(Savepoints):可以使用 SAVEPOINT 创建事务中的保存点,以便在需要时回滚到特定的保存点。

  12. 死锁(Deadlock):当多个事务相互等待对方释放资源时可能发生死锁。MySQL使用死锁检测和超时机制来处理死锁情况。

  13. SHOW ENGINE INNODB STATUS:用于查看InnoDB引擎的状态信息,包括事务的详细信息和死锁情况

3,MySQL事务和索引

MySQL事务: 事务是一组SQL操作的逻辑单元,它们被当作一个单独的工作单元来执行。事务的主要目的是确保数据库在不同操作之间保持一致性和完整性,即使在出现错误或异常情况下也能保持数据的有效状态。MySQL事务遵循ACID属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

  • 原子性(Atomicity):事务内的操作要么全部执行成功,要么全部回滚,确保数据的完整性。
  • 一致性(Consistency):事务执行后,数据库从一个一致状态转换到另一个一致状态,维护数据的合法性。
  • 隔离性(Isolation):多个事务可以并发执行,每个事务都好像在独立运行,避免相互干扰。
  • 持久性(Durability):一旦事务提交,其结果就会永久保存在数据库中,即使系统崩溃也不会丢失。

MySQL索引: 索引是一种数据结构,用于加速数据库的数据检索操作。它类似于书中的目录,可以帮助数据库更快地定位和访问数据行,从而提高查询性能。索引可以在特定列或列组上创建,以便在执行查询时快速缩小搜索范围。

  • 主键索引:用于唯一标识每一行数据,确保数据的唯一性和快速检索。
  • 唯一索引:确保数据列中的值是唯一的,但可以包含空值。
  • 普通索引:最基本的索引类型,用于加速数据的检索操作。
  • 联合索引:在多个列上创建索引,可以加速涉及这些列的查询,但需要权衡选择哪些列创建索引。
  • 全文索引:用于全文搜索,可以在文本字段中进行关键词搜索。

索引的选择和设计需要根据数据库的具体需求和查询模式进行权衡,过多或不恰当的索引可能会导致性能下降和存储开销。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值