
Mysql
文章平均质量分 58
IABQL
记录自己学习的笔记,欢迎指正
展开
-
mysql为什么使用B+树,而选择二叉树、B树创建索引
mysql是怎么依据索引提升查找效率的? 有如下一个mysql数据表,使用c2列创建索引,在磁盘上会生成一个索引文件表。下图以二叉树结构举例创建了一个索引表。在没有索引的情况下,要查找数据需要一行一行查找,搜寻一行就产生一次IO操作,效率上肯定是比较慢的。如果创建索引表,我们就可以先查询索引,再根据查找到的节点指向,就可以寻找到mysql数据表中对应的数据了。这样就减少了搜索次数,从而提高效率。 各数据结构创建索引对比 二叉树 每查找一个节点,就相当于一次IO操作。当一张表的数据十分..原创 2022-03-14 21:43:20 · 1005 阅读 · 0 评论 -
mysql索引在什么情况下会失效?
1.最左匹配原则 在使用联合索引时要满足最左匹配原则。 --给表创建联合索引 CREATE INDEX user on user_innodb(name, age, address) 不满足最左匹配原则的情况1 select * from user_innodb where age = 20 原因: 不满足最左,未使用索引name 不满足最左匹配原则的情况2 select * from user_innodb where name = "张三" and address = "北京"原创 2022-03-08 18:16:40 · 635 阅读 · 0 评论 -
mysql锁机制(锁特性、分类)
概述 从对数据操作的粒度分: 表锁:操作时会锁住整张表 行锁:操作时会锁住当前操作行 从对数据操作的类型分: 读锁(共享锁):针对同一分数据,多个读操作可以同时进行而不会互相影响。 写锁(排它锁):当前操作没有完成之前,它会阻断其它写锁和读锁,不允许其它进行写或读。 不同的存储引擎对锁具有不同的支持情况: 存储引擎 表锁 行锁 MylSAM 支持 不支持 InnoDB 支持 支持 MEMORY 支持 不支持 BDB 支持原创 2022-02-21 22:21:21 · 549 阅读 · 0 评论 -
mysql事务-基本操作、特性、隔离级别
什么是事务? 事务处理可以用来维护数据库的完整性,保证成批的sql语句要么不执行,要么全部执行(且在执行过程中不被任何情况打断) 在mysql中,只有InnoDB存储引擎才支持事务。 理解事务 在银行转账时,必须保证转账的绝对安全,这时就可以用到事务。 update account set money = money - 200 where id = 1; update account set money = money + 200 where id = 2; 用户1给用户2转账200元,如果原创 2022-02-21 17:31:03 · 553 阅读 · 0 评论 -
mysql存储过程之传递参数
in 表示传入的参数 ( in 参数名1 参数类型,in 参数名2 参数类型,....) delimiter $ create procedure func(in id int) begin select * from 表 where Id = id;--查询Id=id的信息 end $ delimiter; call func(101);--调用 out 表示从内部传值给调用者 ( out 参数名1 参数类型,in 参数名2 参数类型,....) delimiter.原创 2022-02-15 14:56:53 · 5218 阅读 · 0 评论 -
Mysql存储过程的变量定义
1.局部变量 用户自定义,在begin/end块中有效 语法:declare 变量名 数据类型 [default 默认值] 举例:declare name varchar(10); delimiter $ create procedure func() begin declare name varchar(10) default '张三'; set name = '李四';--给变量赋值 select name;--输出变量的值 end $ delimite原创 2022-02-14 12:37:49 · 5622 阅读 · 0 评论 -
Mysql存储过程的定义、创建、调用
存储过程就是数据库SQL语言的代码封装、重用,类似于java中的方法,可以实现一些比较复杂的逻辑功能。 特性: 有输入输出参数,可以声明变量,有if、else等语句,可以实现复杂的逻辑功能。 代码复用 速度快,只有首次执行需要经过编译优化 创建存储过程 语法格式 delimiter 自定义结束符 create procedure 存储名() begin sql语句... end 自定义结束符 delimiter; 例 delimiter $ create procedu原创 2022-02-14 10:25:49 · 936 阅读 · 0 评论