DB
DB
mengml_smile
我就是我 不一样的自我
展开
-
shell脚本mysql定时备份数据库
[mysql dump 定时备份数据库]https://mp.weixin.qq.com/s/Yyf1fLfzHIBz2Q6nekvqWA原创 2021-09-15 21:35:39 · 82 阅读 · 0 评论 -
MySql事务
MySql事务参考文章MVCC可重复读没有彻底解决幻读高并发场景下快照读 是基于MVCC当前读是最新记录 会产生幻读 需要开启gap和next-lock 来部分解决MVCC(Multi-Version Concurrency Control多版本并发控制):隐藏字段DATA_TRX_ID 字段记录了数据的创建和删除时间,这个时间指的是对数据进行操作的事务的idDATA_ROLL_PTR 指向当前数据的undo log记录,回滚数据就是通过这个指针DELETE原创 2021-10-10 13:05:30 · 67 阅读 · 0 评论 -
MySQL DEADLOCK
几个文章参考浅谈MySQL的七种锁 https://yq.aliyun.com/articles/646976MYSQL自增列引起死锁 https://www.cnblogs.com/hhbk/p/8376416.html两个INSERT发生死锁原因剖析https://blog.csdn.net/n88Lpo/article/details/78099088Innodb 锁的介绍 http...原创 2019-07-24 19:58:45 · 372 阅读 · 0 评论 -
mysql索引数据结构
B+treehash1.Hash 索引仅仅能满足"=",“IN"和”<=>"查询,不能使用范围查询2.Hash 索引无法被用来避免数据的排序操作由于 Hash 索引中存放的是经过 Hash 计算之后的 Hash 值,而且Hash值的大小关系并不一定和 Hash 运算前的键值完全一样,所以数据库无法利用索引的数据来避免任何排序运算3.Hash 索引不能利用部分索引键查询对于组合索引,Hash 索引在计算 Hash 值的时候是组合索引键合并后再一起计算 Hash 值,而不是单独计算 H原创 2020-09-02 18:09:07 · 3452 阅读 · 0 评论 -
mysql大表分页查询
mysql大表分页查询原因mysql分页查询是先查询出来offset+limit行数据,然后放弃前offset,取limit条记录,造成了越往后的页数,查询时间越长思路转换offset让offset尽可能的小 最好能每次查询都是第一页即offset为0上/下一页 跳转固定页数解决方案上/下一页按照id排序 上一页最大id当参数传入 有序id(聚簇索引)当参数传入 order by id id>lastEndId limit 10按照其他索引排序(可能存在重复记录 .原创 2021-04-06 16:47:35 · 744 阅读 · 0 评论 -
mysql的锁
几种锁原创 2021-03-30 08:09:04 · 52 阅读 · 0 评论 -
Mysql执行过程
Mysql执行过程缓存命中与否MySQL将缓存存放在一个引用表中,通过一个哈希值引用,这个哈希值包括了以下因素,即查询本身、当前要查询的数据库、客户端协议的版本等一些其他可能影响返回结果的信息。命中当判断缓存是否命中时,MySQL不会进行解析查询语句,而是直接使用SQL语句和客户端发送过来的其他原始信息不命中任何字符上的不同,例如空格、注解等都会导致缓存的不命中不确定的数据时不会缓存NOW()或者CURRENT_DATE()任何用户自定义函数,存储函数,用户变量,临时表,系统表或者包含任何列级原创 2021-04-02 18:21:45 · 300 阅读 · 0 评论 -
Mysql主从复制 读写分离
Mysql主从复制 读写分离复制原理master将改变记录到二进制日志binary logslave将master的binary log events拷贝到它的中继日志(relay log)slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)方式同步复制,master的变化,必须等待slave-1,slave-2,…,slave-n完成后才能返回异步复制,master只需要完成自己的数据库操作即可,至于slaves是否收到二进制日志,是否完成操作,不用关心。MYSQ原创 2020-12-07 19:12:51 · 647 阅读 · 0 评论 -
sql调优
Mysql索引失效1.最左前缀原则(复合索引) 如果有一个 2 列的索引 (col1, col2),则已经对 (col1)、(col1, col2) 上建立了索引. 如果有一个 3 列索引 (col1, col2, col3),则已经对 (col1)、(col1, col2)、(col1, col2, col3) 上建立了索引. 特殊情况 头在中间断头有效 头不在都无效 头或者中间...原创 2020-01-16 16:53:24 · 1899 阅读 · 0 评论 -
MongoDB
MongoDB link基本知识db.createCollection(“runoob”)db.collection.drop()db.mycol2.insert({“name” : “菜鸟教程”}) 自动创建insert() insertMany() 主键已经存在Exceptiondb.col.update({‘title’:‘MongoDB 教程’},{$set:{‘title’:‘MongoDB’}},{multi:true})$type 过滤字段类型db.col.remove({‘原创 2020-12-09 20:17:41 · 448 阅读 · 0 评论 -
NoSQL优劣势
MongoDB、Hbase、Redis等NoSQL优劣势、应用场景NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数据库处理任务。NoSQL的四大种类NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数据库处理任务,这时NoSQL凭借易扩展、大数据量和原创 2020-09-17 19:05:41 · 3464 阅读 · 0 评论 -
MySQL的left join和inner join的效率对比
MySQL的left join和inner join的效率对比1.left join 两表之间不会自动选择小表驱动大表但是inner join 会自动选择2.如果连接字段字符编码不一致的话会left join导致索引失效3.MySQL的nested loop join的算法 通过驱动表的结果集作为循环基础数据, 然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并...原创 2019-09-17 10:48:10 · 6963 阅读 · 0 评论 -
Mysql 字段类型长度
1.整数型 int(11)、tinyint(4)、smallint(6)、mediumint(9)、bigint(20) 1、整数型的数值类型已经限制了取值范围,有符号整型和无符号整型都有, 而M值并不代表可以存储的数值字符长度,它代表的是数据在显示时显示的最小长度; 2.当存储的字符长度超过M值时,没有任何的影响,只要不超过数值类型限制的范围; 3、当存储的字符长度小于M值时,只有在设置了zerofill用0来填充,才能够看到效果, 换句话就是说,没有zerofill,M值就是无用的。2.原创 2020-07-14 17:00:33 · 3955 阅读 · 0 评论 -
查找是否存在 别用count了
普遍写法:SQL写法:SELECT count(*) FROM table WHERE a = 1 AND b = 2Java写法:int nums = xxDao.countXxxxByXxx(params);if ( nums > 0 ) {//当存在时,执行这里的代码} else {//当不存在时,执行这里的代码}优化方案:SQL写法:SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1Java写法:Integer exi原创 2020-05-19 10:15:59 · 2958 阅读 · 0 评论 -
MySQL中update...inner join...
MySQL中update…inner join…语法UPDATE bill_down_detail_pre aINNER JOIN bill_down_pre b ON a.bill_down_id = b.idSET a.settlement_cycle_id = b.settlement_cycle_id;原创 2020-04-27 16:38:58 · 3030 阅读 · 0 评论