03 2022 档案

Lazy Queue惰性队列
摘要:目录1.概述惰性队列特征2.两种模式使用配置方式一:channel.queueDeclare参数中设置方式二:声明队列时,指定x-queue-mode属性为lazy方式三:注解方式声明3.内存开销对比 1.概述 RabbitMQ 从 3.6.0 版本开始引入了惰性队列的概念。 惰性队列特征 接收到消
127
0
0
9.优先级队列
摘要:9.1使用场景 在我们系统中有一个订单催付的场景,我们的客户在天猫下的订单,淘宝会及时将订单推送给我们,如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒,很简单的一个功能对吧,但是,tmall商家对我们来说,肯定是要分大客户和小客户的对吧,比如像苹果,小米这样大商家一年起码能给我们创造很大
44
0
0
8.幂等性
摘要:8.1概念 用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也
62
0
0
[转载]MySQL使用存储过程创建百万级别测试数据
摘要:大佬地址,请优先查看!请优先查看!请优先查看! https://www.cnblogs.com/bobobobobo/p/13268389.html 建表 CREATE TABLE `usertb` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT
36
0
0
MySQL面试
摘要:社招后端21连问(三年工作经验一面) mysql优化综合性 1.表的设计优化 选择表合适存储引擎: myisam: 应用时以读和插入操作为主,只有少量的更新和删除,并且对事务的完整性,并发性要求不是很高的。 Innodb: 事务处理,以及并发条件下要求数据的一致性。除了插入和查询外,包括很多的更新和
35
0
0
20. Mysql复制
摘要:20.1 复制概述 复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。 20.2 复制原理 M
75
0
0
19. Mysql 日志
摘要:在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事件。MySQL 也不例外,在 MySQL 中,有 4 种不同的日志,分别是错误日志、二进制日志(BINLOG 日志)、查询日志和慢查询日志,这些日志记录着数据库在不同方面的踪迹。 19
39
0
0
18. MySql中常用工具
摘要:目录18.2 mysqladmin18.4 mysqldump18.4.1 连接选项18.4.2 输出内容选项18.5 mysqlimport/source18.6 mysqlshow 18.2 mysqladmin mysqladmin 是一个执行管理操作的客户端程序。可以用它来检查服务器的配置和
0
0
0
17. 常用SQL技巧
摘要:17.1 SQL执行顺序 编写顺序 SELECT DISTINCT <select list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY
25
0
0
16. Mysql锁问题
摘要:16.1 锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。 在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重
36
0
0
14. Mysql内存管理及优化
摘要:14.1 内存优化原则 1) 将尽量多的内存分配给MySQL做缓存,但要给操作系统和其他程序预留足够内存。 2) MyISAM 存储引擎的数据文件读取依赖于操作系统自身的IO缓存,因此,如果有MyISAM表,就要预留更多的内存给操作系统做IO缓存。 3) 排序区、连接区等缓存是分配给每个数据库会话(
71
0
0
15. Mysql并发参数调整
摘要:从实现上来说,MySQL Server 是多线程结构,包括后台线程和客户服务线程。多线程可以有效利用服务器资源,提高数据库的并发性能。在Mysql中,控制并发连接和线程的主要参数包括 max_connections、back_log、thread_cache_size、table_open_cahc
60
0
0
13. Mysql中查询缓存优化
摘要:13.1 概述 开启Mysql的查询缓存,当执行==完全相同的SQL语句(语句完全一样,甚至大小写完全一致)==的时候,服务器就会直接从缓存中读取结果,当数据被修改,之前的缓存会失效,修改比较频繁的表不适合做查询缓存。 13.2 操作流程 客户端发送一条查询给服务器; 服务器先会检查查询缓存,如果命
38
0
0
12. 应用优化
摘要:前面章节,我们介绍了很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。 性能下降的表现 执行时间长 等待时间长 性能下降的原因 查询语句写的不好,各种连接,各种子查询导致用不上索引或者没有建立索引 建立的索引失效,建立了索
122
0
0
10. SQL优化
摘要:10.1 大批量插入数据 环境准备 : CREATE TABLE `tb_user_2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(45) NOT NULL, `password` varchar(96) NOT NULL,
33
0
0
9. 索引的使用及失效情况
摘要:🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳🍳 社招后端21连问(三年工作经验一面) mysql如何处理亿级数据,第一个阶段
415
0
0
8.5 trace分析优化器执行计划
摘要:MySQL5.6提供了对SQL的跟踪trace, 通过trace文件能够进一步了解为什么优化器选择A计划, 而不是选择B计划。 打开trace , 设置格式为 JSON,并设置trace最大能够使用的内存大小,避免解析过程中因为默认内存过小而不能够完整展示。 SET optimizer_trace=
62
0
0
8.4 show profile分析SQL
摘要:Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持。show profiles 能够在做SQL优化时帮助我们了解时间都耗费到哪里去了。是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于sql的调优的测量。 通过 have
45
0
0
8.3 explain分析执行计划
摘要:通过以上步骤查询到效率低的 SQL 语句后,可以通过 EXPLAIN或者 DESC命令获取 MySQL如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序 查询SQL语句的执行计划 : explain select * from tb_item where
46
0
0
8.2 show processlist 定位低效率执行SQL
摘要:慢查询日志在查询结束以后才记录,所以在应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题,可以使用show processlist命令查看当前MySQL正在进行的线程,包括线程的状态、是否锁表等,可以实时地查看 SQL 的执行情况,同时对一些锁表操作进行优化。 show processlis
303
0
0
8.1 查看SQL执行频率
摘要:MySQL 客户端连接成功后,通过 show [ session | global ] status 命令可以提供服务器状态信息。 show [ session | global ] status; 可以根据需要加上参数 "session" 或者 "global" 来显示 session 级(当前连
181
0
0
7. 存储引擎
摘要:7.1 存储引擎概述 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。 Oracle,SqlServer等数据库
62
0
0
6. Mysql的体系结构概览
摘要:6. Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 查询分析器组件 Optim
37
0
0
5. 触发器
摘要:5.1 介绍 触发器是与表有关的数据库对象,指在 insert/update/delete 之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性 , 日志记录 , 数据校验等操作 。 使用别名 OLD 和 NEW 来引用触发器中发生变化的记录内容
64
0
0
4. 存储过程和函数
摘要:4.1 存储过程和函数概述 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程和函数的区别在于函数必须有返回值,而存储过程没有。 函数 : 是一
89
0
0
3. 视图
摘要:3.1 视图概述 视图(View)是一种虚拟存在的表。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 视图相对于普通的表的
88
0
0
2. 索引
摘要:2.1 索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据
40
0
0
1.Linux 系统安装MySQL
摘要:声明:本系列文章主要来源b站黑马程序员上海校区视频:https://www.bilibili.com/video/BV1eD4y1D7pR?p=2 其中会补充自己的理解及各位大佬的文章 1. Linux 系统安装MySQL 1.1 下载Linux 安装包 https://dev.mysql.com/
38
0
0
MySQL查看数据库、表占用磁盘大小
摘要:[toc] 原文地址:请优先查看!请优先查看! [Mysql——查看数据库,表占用磁盘大小](https://www.bbsmax.com/A/ZOJP4rRPJv/) [MySQL查看数据库或表磁盘占用空间](http://blog.sina.com.cn/s/blog_4e714f020101o
5295
1
0
线程池中利用多线程大量插入数据
摘要:👉👉请优先查看大佬文章 import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorServi
1463
0
0
多线程的项目实战
摘要:👉👉请优先查看大佬文章 //1.CountDownLatch,计数 CountDownLatch doneSignal = new CountDownLatch(1000); //2.创建线程池来存放线程,以防考生数量太多创建太多线程,占用过多资源 ThreadPoolExecutor exec
316
0
0
面试题
摘要:面试题:简述线程、进程、程序的基本概念? 进程 我们把运行中的程序叫做进程,每个进程都会占用内存与CPU资源,进程与进程之间互相独立. 线程 线程就是进程中的一个执行单元,负责当前进程中程序的执行。一个进程可以包含多个线程。一个进程包含了多个线程就是多线程。多线程可以提高程序的并行运行效率。是操作系
44
0
0
12.JUC并发编程中的并发工具类
摘要:1.等待多线程完成的CountDownLatch(倒计数闭锁) 1.1.目标 1.掌握CountDownLatch使用(实现等待其他线程处理完才继续运行当前线程) 2.理解CountDownLatch实现原理 3.CountDownLatch实现闭锁比join的优势是什么 4.CountDownLa
63
0
0
11.并发容器和框架
摘要:11.1ConcurrentHashMap 11.1.1 为什么要使用ConcurrentHashMap 在并发编程中使用HashMap可能导致程序死循环。而使用线程安全的HashTable效率又非常低下,基于以上两个原因,便有了ConcurrentHashMap的登场机会。 (1)线程不安全的Ha
26
0
0
10.锁的优化及注意事项
摘要:10.1有助于提高锁性能的几点建议 10.1.1减少锁持有时间 对于使用锁进行并发控制的应用程序来说,如果单个线程特有锁的时间过长,会导致锁的竞争更加激烈,会影响系统的性能,在程序中需要尽可能减少线程对锁的持有时间,如下面代码: // 同步方法 public synchronized void sy
67
0
0
9.保障线程安全的设计技术
摘要:从面向对象设计的角度出发介绍几种保障线程安全的设计技术,这些技术可以使得我们在不必借助锁的情况下保障线程安全,避免锁可能导致的问题及开销。 9.1 Java 运行时存储空间 Java运行时(Java runtime)空间可以分为栈区,堆区与方法区(非堆空间);栈空间(Stack Space)为线程的
38
0
0
8.线程池
摘要:8.1 什么是线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线
43
0
0
7.线程管理
摘要:7.1线程组 类似于在计算机中使用文件夹管理文件,也可以使用线程组来管理线程,在线程组中定义一组相似(相关)的线程,在线程组中也可以定义子线程组。 Thread 类有几个构造方法允许在创建线程时指定线程组,如果在创建线程时没有指定线程组则该线程就属于父线程所在的线程组。 JVM 在创建 main 线
49
0
0
ThreadLocal 的使用
摘要:声明:此文章大部分内容来源<<ThreadLocal夺命11连问>>,加上一些自己附加内容。如果看到此篇文章,请优先查看大佬文章。 目录什么是ThreadLocal为什么要用ThreadLocal?ThreadLocal的API方法ThreadLocal源码剖析ThreadLocal的原理是什么?为
139
0
0
4.线程间的通信
摘要:4.1 什么是等待通知机制 在单线程编程中,要执行的操作需要满足一定的条件才能执行,可以把这个操作放在 if 语句块中。在多线程编程中,可能 A 线程的条件没有满足只是暂时的,稍后其他的线程 B 可能会更新条件使得 A 线程的条件得到满足。可以将 A 线程暂停,直到它的条件得到满足后再将 A 线程唤
49
0
0
Linux安装JDK、MySQL、Redis、Tomcat
摘要:1 JDK安装 配置Java环境 进入“/root”目录,解压jdk到指定目录/usr/local下 tar -xvf jdk-8u211-linux-x64.tar.gz -C /usr/local/ ​ 注:在客户端软件中按ctrl+shift复制,shift+insert粘贴或鼠标右键 ​ 查
85
0
0
SSH远程连接与免密登录
摘要:目录SSH远程连接SSH两种验证机制Permission denied, please try again错误 SSH远程连接 Secure Shell 协议,安全壳协议。用于Linux之间加密登录一种协议 SSH两种验证机制 直接输入用户名和密码的方式 ssh username@ip 免密登录,直
1232
0
0
网卡配置
摘要:设置ip分为2种类型,dhcp和static。 dhcp是动态获取ip static是配置静态ip dhcp动态获取ip,可能ip经常会发生变化,导致客户端无法连接到。静态ip配置后就不会发生改变,这样客户端连接服务器具有更好的安全性。 关闭网卡 修改/etc/sysconfig/network-s
300
0
0
主机名配置
摘要:1.显示系统的主机名 hostname 2.临时设置主机名为HOSTNAME。如果hostname没有任何参数,显示主机名。 hostname [HOSTNAME] 3.永久设置主机名为HOSTNAME hostnamectl set-hostname [HOSTNAME] 🌰: 查看当前的主机名
180
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起