数据库
文章平均质量分 77
数据库
愚笨难解
初级
展开
-
mysql锁分析
锁的分类本文参考神硅谷视频从对数据操作的类型(读/写)读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁。从对数据操作的粒度分类表锁(偏读):偏向MyISAM存储引擎,开销小,加锁快;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度较低。行锁(偏写):偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页锁:偏向BDB存储引擎,开销和加锁时间界于表锁和行锁原创 2021-11-24 17:11:50 · 844 阅读 · 0 评论 -
数据库批量插入脚本数据
插入前查看log_bin_trust_function_creators全局变量是否开启状态,如果关闭,则创建函数时会警告#查看show variables like 'log_bin_trust_function_creators';#开启set global log_bin_trust_function_creators=1;实例:以下代码可直接在navicat上运行#创建部门表create table dept( id int unsigned primary key auto_in原创 2021-11-23 15:39:57 · 1103 阅读 · 0 评论 -
索引失效的几种情况
索引失效本文参考尚硅谷视频口诀:带头大哥不能死,中间兄都不能断,索引列上无操作,范围右边全失效,like百分加右边,字符串中有引号准备:建立员工记录表staffs(id,name,age,pos,add_time)给表中name,age,pos字段添加索引(注意三个字段的顺序)alter table staffadd index idx_staffs_nameAgePos(name,age,pos)①最佳左前缀法则指的是查询从索引的最左前列开始并且不跳过索引中的列(带头大哥不能死,中间原创 2021-06-17 15:58:06 · 11601 阅读 · 3 评论 -
单/多表索引分析
索引分析单表索引优化分析查询category_id为1且comments大于1的情况下,views最多的arcticle_id未建立索引前type:ALL对全表进行了扫描,效率最低possible_keys和key都为null,没有使用索引rows为3,表示找到所需记录所要读取的行数Extra有Using filesort未使用内部索引,需要优化由于用到了category_id,comments,views三个列,先尝试对这三个列建立复合索引create index idx_articl原创 2021-06-17 15:54:25 · 461 阅读 · 1 评论 -
详解EXPLAIN
EXPLAIN分析查询语句使用explain关键字可以模拟优化器执行SQL查询语句,从而指导MySQL是如何处理你的SQL语句,分析你的查询语句或是表结构的性能瓶颈EXPLAIN select * from tableexplain能干嘛?表的读取书顺序(id)查询使用了哪些查询类型子查询?连接查询等等?(select_type)操作了那些表(table)数据读取操作的操作类型(type)哪些索引可能被使用(possible_keys)哪些索引被实际使用(key)索引可能使用的最大原创 2021-06-16 10:41:45 · 2260 阅读 · 0 评论 -
join的七种用法
join的7种连接方式sq199语法才有join语法: select 查询列表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 [where 筛选条件] [group by 分组] [having 筛选条件] [order by 排序列表]分类:内连接(※):inner join外连接: 左外连接(※):left[outer] 右外连接(※):right[outer] 全外连接:ful原创 2021-06-15 08:36:42 · 13882 阅读 · 1 评论