11 2024 档案
摘要:语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/gsehtu150dmco6bf/collaborator/join?token=sUtrjJPYLJ0W7OGx&source=doc_collaborator# 《数据结构排序》
阅读全文
摘要:你现在可以不懂,但以后面试的时候,必须要知道的三个关于自增主键的点
第一:唯一键冲突和事务回滚是导致自增主键不连续的两种大原因,此外批量插入数据的语句,MySQL 批量申请自增 id 的策略也是一个隐藏原因
第二:MySQL设计中不允许自增值回退的原因,主要是为了提升性能还有数据准确性。强调了自增主键保证递增但不保证连续的特点。
数据准确性在于:
如果是高并发环境,a和b自增主键操作的好好的,a突然回滚,自增主键就会被打乱,如果允许自增值回退,那就要花更多的性能在排自增主键上(详细见课件),那不允许自增值回退,那不就相当于提升性能吗?
提升性能也在于:
MySQL 有一个批量申请自增 id 的策略,不可能你插十万个数据,都要申请十万次自增id
第三点
MySQL在 5.7 及之前的版本,自增值保存在内存里,并没有持久化。每次重启后,第一次打开表的时候,都会去找自增值的最大值 max(id),然后将 max(id)+1 作为这个表当前的自增值。
阅读全文
摘要:语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/kl8h357ofcgocddz/collaborator/join?token=AwLuhwfJL8wLO2FH&source=doc_collaborator# 《数据结构查找》
阅读全文
摘要:内存引擎和InnoDB引擎在数据组织方式上存在显著差异。InnoDB引擎将数据存储在主键索引上,而内存引擎则将数据和索引分开存放。导致了内存表的数据是按照写入顺序存放的,而InnoDB表的数据总是有序存放的。此外,内存表不支持行锁,只支持表锁,这会影响并发访问的性能。尽管内存引擎速度快且支持hash索引,但在生产环境中使用时需要注意锁粒度问题和数据持久化问题。因此,尽管内存引擎有其优势,但在生产环境中的使用需要谨慎考虑。
在高可用架构下,内存表的特性可能导致主备同步停止,甚至主库的内存表数据被意外删除。因此,普通内存表并不适合在生产环境中使用,而推荐使用InnoDB表代替。然而,内存临时表在数据量可控的情况下可以考虑使用,因为它不会受到主备同步和数据持久化的影响。
总的来说,内存表的特性决定了它并不适合作为普通数据表在生产环境中使用。在实际应用中,需要根据具体场景和需求来选择合适的存储引擎,以确保数据安全和性能优化。
阅读全文
摘要:docker快速安装 [root@docker-server ~]# yum install wget.x86_64 -y [root@docker-server ~]# rm -rf /etc/yum.repos.d/* [root@docker-server ~]# wget -O /etc/y
阅读全文
摘要:环境准备 角色 主机名 ip地址 配置 master master01 192.168.173.100 2C4G60G node01 node01 192.168.173.101 2C2G60G node02 node2 192.168.173.102 2C2G60G 资源链接:http://mc.
阅读全文
摘要:就两个点
在union语句中,内部临时表用于暂存数据并执行两个子查询的并集
第二:强调了通过索引优化group by语句的执行效率
如何group by优化查询?
1.如果没有排序要求,要在语句后面加 order by null;
2.尽量让 group by 过程用上表的索引
3.如果 group by 需要统计的数据量不大,尽量只使用内存临时表,避免用到磁盘临时表;
4.如果数据量实在太大,使用 SQL_BIG_RESULT 这个提示,来告诉优化器直接使用排序算法得到 group by 的结果。
阅读全文
摘要:江苏科技大学 《数据结构》实验报告 (2024/2025学年第1学期) 学生姓名: 学生学号: 院 系: 计算机学院 专 业: 考核得分: 2024 年 12 月 实验一 线性表的操作 一、实验目的 掌握线性表的基本操作在存储结构上的实现,其中以单链表的操作作为重点。 二、实验题目 1.以单链表作为
阅读全文
摘要:rocky的linux命令用法 nmcli是NetworkManager的一个命令行工具,也是目前Centos比较强大的网络管理命令行工具(目前适用于大多数linux发行版)。 nmcli 四类常用命令:n、g、c、d。 查看NetworkManager是否接管网络设置 显示 NetworkMana
阅读全文
摘要:rocky one :远程登录 vi /etc/ssh/sshd_config 找到 #PermitRootLogin prohibit-password 在这一行下面添加 PermitRootLogin yes 然后重启 sshd 服务 systemctl restart sshd
阅读全文
摘要:rocky9如何重置root密码 第一步 第二步 在箭头指的地方把 "ro" 改成 "rw" 另一个箭头指的地方写上如下内容: init=/bin/bash 如图所示 第三步 Ctrl + x 按当前的配置启动 第四步 输入命令 root 用户密码直接输入以下内容 passwd 如果更改其他用户 第
阅读全文
摘要:创建临时表,一部分为了优化查询,join在临时表里查询出结果后导入到正常表中,他也支持多session的查询优化,更重要一点是在session会话关闭后,临时表会自动销毁。嗯就这样
另外分清他和内存表的区别
内存表一定是从memory引擎创建的,临时表可以由memory引擎创建
阅读全文
摘要:语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/qw8kwzxigbx61kxy/collaborator/join?token=2vdSjDBgJyJb0VSL&source=doc_collaborator# 《树与二叉树》
阅读全文
摘要:第三十四讲:join语句怎么优化? 简概: 万年不变的开头 在上一篇文章中,我和你介绍了 join 语句的两种算法,分别是 Index Nested-Loop Join(NLJ) 和 Block Nested-Loop Join(BNL)。我们发现在使用 NLJ 算法的时候,其实效果还是不错的,
阅读全文
摘要:第三十三讲:到底可不可以使用join? 简概: 厌烦了平淡的开头 提出问题 在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 我们 DBA 不让使用 join,使用 join 有什么问题呢? 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 提出示例 今天这篇
阅读全文
摘要:语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/atvszq3vugrzblr0/collaborator/join?token=MY21l2k2LPLrQF8l&source=doc_collaborator# 《数据结构期末复习绪论部分》
阅读全文
摘要:语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/vrhdf9bfkmshpzus/collaborator/join?token=C3AlDSf6fePw1XfO&source=doc_collaborator# 《数据结构线性表》
阅读全文
摘要:语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/xp4i4cq3wugesqzi/collaborator/join?token=U1yJtvCbyQiS79sr&source=doc_collaborator# 《栈和队列》
阅读全文
摘要:语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/sd7b4top0kec9wgh/collaborator/join?token=XvQ46tmN2Cc7U4sG&source=doc_collaborator# 《串,数组,广义表》
阅读全文
摘要:我的服务器数据库内存还有4个G,里面有8个G的表,现在,我要让我的客户机远程连接服务器后对数据库进行一次全表扫描,请问,我的服务器会不会因为内存被8个G的表塞得溢出而崩溃?
面试关如实问到
在我阅读这篇文章后,我会这么跟面试官说:
第一,内存不会打满,除非socket send buffer设置超过4G才有可能
第二,之所以不会,是因为mysql采用一边帮你查询,一边帮你把查询数据发给客户端的模式
但如果客户端接受查询数据特别慢,那数据就会滞留在服务器上,直到达到滞留上限(上限就是socket send buffer的值),这会极大影响服务器性能
你怎么确定服务端的数据是否滞留呢?
面试官问:
答案
show processlist;
可以查看线程状态,如果处于:“sending to client”,那就说明服务端处于滞留状态
阅读全文
摘要:在一个阳光洒满教室的温暖午后,hr隔着腾讯会议的屏幕目光如炬得看着你,大喝一声,你在mysql实验中有没有遇到sql语句kill不了的情况,所!
每一个sql语句的线程执行都有一个或多个“埋雷点”,kill query或kill 线程id都是向这个埋雷点发信号激活,所以,当这个sql语句执行到被激活的埋雷点时,就会自动销毁
所以说,之所以kill不掉语句,基本就是因为sql线程始终触发不了“已经激活的埋雷点”
kill 并不是马上停止的意思,而是告诉执行线程说,这条语句已经不需要继续执行了,可以开始“执行停止的逻辑了”
阅读全文
摘要:mysql数据误删后的数据回滚 第一步:下载MyFlash工具 # 创建文件夹 mkdir /back_data cd /back_data # 下载压缩包 wget https://codeload.github.com/Meituan-Dianping/MyFlash/zip/master #
阅读全文
摘要:flashback实现数据快速复原 MyFlash 限制 仅支持 5.6 与 5.7 版本 binlog 格式必须为 row,且 binlog_row_image=full 只能回滚DML(增、删、改) 第零步:确定日志 mysql> show variables like 'log_bin%';
阅读全文
阅读目录(Content)
此页目录为空