mysql
Shenkh的Java壁橱
len 一定要有梦想
展开
-
Mysql索引失效场景总结
隐式转换 这种是经常出现的场景,例如表t的字段 name(varchar类型),通过条件查询传入数字类型,虽然可以查出所要的结果,但是此时索引没有命中。 反例: select * from t where name=123; 正例: select * from t where name=‘123’; 索引列的运算 在 ...原创 2020-07-05 15:30:08 · 181 阅读 · 0 评论 -
Mysql排名(并列排名与不并列排名)
一、MySQL中没有排名函数 sql中有排名函数rank()用来排序,但MySQL没有可排名函数。所以,在mysql中需要自己实现排名。 二、实现方法 假设有张表 t1(id,score), 根据t1表中的score进行分数从大到小进行排名。 此时能够很容易想到根据score从大到小排序,我们可以写个 order by score desc 倒序处理。至于排名的序号,就有点难度了。通过引入一个临时变量(mysql中 @变量名称的用法),我们可以很容易根据数据记录的顺序得出排名。 三、非并列排名原创 2020-06-21 18:11:34 · 3235 阅读 · 1 评论 -
Mysql一个查询语句的执行流程
一、MySQL逻辑结构 MySQL 可以分为 Server 层和存储引擎层两部分。 二、sql的执行流程 1、连接器 在数据库层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。 2、查询缓存 服务器在解析一个查询语句之前,如果查询缓存是打开的(MySQL默认打开,可以使have_query_cache查看),在接收到查询请求后,并不会直接去数据库查...原创 2020-03-14 17:10:51 · 185 阅读 · 0 评论 -
MyISAM和InnoDB的区别
一、使用的锁 MyISAM: myisam只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。也可以通过lock table命令来锁表,这样操作主要是可以模仿事务,但是消耗非常大,一般只在实验演示中使用。 InnoDB : Innodb支持事务和行级锁...原创 2019-10-27 23:33:47 · 151 阅读 · 0 评论 -
Mysql主从复制配置
一、MySQL主从复制原理 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过 主从复制(Master-Slave)的方式...原创 2019-04-16 01:05:29 · 220 阅读 · 0 评论 -
Mysql锁机制
一、Mysql锁概述 1、锁的分类 Mysql中锁分为3类:页级锁、表级锁、行级锁。 页级锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。会发生在:BDB存储引擎。 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。会发生在:MyISAM、memory、InnoDB、BDB等存储引擎中。 行级锁:开销大,加...原创 2019-08-19 21:51:01 · 71 阅读 · 0 评论