MySQL
文章平均质量分 75
黙谷
这个作者很懒,什么都没留下…
展开
-
MySQL事务原理
实际上,我们研究事务的原理,就是研究MySQL的InnoDB引擎是如何保证事务的四大特性的。 而对于这四大特性,实际上分为两个部分。 其中的原子性、一致性、持久化,实际上是由InnoDB中的两份日志来保证的,一份是redo log日志,一份是undo log日志。 而持久性是通过数据库的锁, 加上MVCC来保证的。一、redo log重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。该日志文件由两部分组成:重做日志缓冲(redo log buffer)以及重原创 2022-03-26 21:09:21 · 3580 阅读 · 1 评论 -
MySQL的锁
MySQL中的锁,按照锁的粒度分,分为以下三类: 全局锁:锁定数据库中的所有表。 表级锁:每次操作锁住整张表。 行级锁:每次操作锁住对应的行数据。 一、全局锁全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。 其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定,从而获取一致性视图,保证数据的完整性。 1. 语法(1)加全局锁flush tables with read lock .原创 2022-03-25 13:24:39 · 1320 阅读 · 0 评论 -
MySQL存储过程
存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发 人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。特点:封装,复用 -----------------------> 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。 可以接收参数,也可以返回数据 --------> 再存储过程中,可以传递参数,也可以接收原创 2022-03-23 20:49:41 · 814 阅读 · 0 评论 -
SQL优化
插入数据1. insert优化批量插入 手动提交事务 主键顺序插入2. 大批量插入数据如果一次性需要插入大批量数据,使用insert语句插入性能较低,此时可以使用MySQL数据库提供的load指令进行插入。主键优化满足业务需求的情况下,尽量降低主键的长度。 插入数据时,尽量选择顺序插入,选择使用AUTO_INCREMENT自增主键。 尽量不使用UUID做主键或者是其他自然主键,如身份证。 业务操作时,避免对主键的修改。orderby优化根据排序字段建立合...原创 2022-03-18 22:18:03 · 638 阅读 · 0 评论 -
MySQL索引的使用规则和设计原则
索引的使用规则1. 最左前缀法则如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左侧开始,并且不能跳过索引中的列。如果跳过某一列,索引将部分失效(后面的字段索引失效)。 最左列的索引存在即可,与所放的位置无关。2. 范围查询联合索引中,出现范围查询(>,<),范围查询右侧的列索引失效。3. 索引列运算不要在索引列上进行运算操作,索引将失效。4. 字符串不加引号 字符串类型字段使用时,不加引号,索引将失效。5. 模糊查询 如果仅.原创 2022-03-17 13:33:44 · 1732 阅读 · 2 评论