
java进阶
文章平均质量分 78
crraxx
崔瑞荣就是我 :-)
展开
-
SQL优化
SQL优化 正确使用SQL 1.正确使用索引 查询条件列,排序列添加索引 2.尽量避免索引失效 2.1模糊查询 name like “%张%” 改为全文索引 2.2在where子句中避免num is null 2.3在where子句中避免使用!=或<>操作符 2.4在where子句中使用运算符 如:select id from t where num=10 or num=20 对于连续的数值,能用 between 就不要用 in 了 如:select id from原创 2022-01-22 21:43:40 · 649 阅读 · 0 评论 -
事务,关系型数据事务4大特性,事务的隔离级别,MVCC,锁机制
事务 事务就是一次完整的数据库操作,这个操作过程中可能包含多条SQL的执行,这多条SQL的执行是一个整体,要么都执行成功,要么都执行失败 举例:转账操作:从A账号向B账号转钱, A账号+100时 ,B账号必须-100 网上下单支付:下订单到卖家,支付到平台 MySQL中只有innodb引擎支持数据库事务 事务用来管理 insert,update,delete 语句。 关系型数据事务4大特性 一般来说,事务是必须满足 4 个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consist原创 2022-01-21 23:04:08 · 1125 阅读 · 0 评论 -
MySQL架构,MySQL存储引擎,索引
MySQL架构 连接层 负责与客户端和程序建立连接,认证… 服务层 sql接口 解析器 查询优化器 缓存 引擎层 负责与数据文件系统连接,写数据 物理文件层 负责存储表数据,日志文件,就是依赖于日志 MySQL存储引擎 引擎是数据库中具体与文件交互的技术,不同的引擎实现方式是有区别的 数据库引擎,具体实现者 常用的引擎 myisam 不支持事务,适合查询较多,不支持外键,不支持行锁,支持表锁,支持全文索引,存储表的总行数 select count(*) from admin 直接获取到总行数即可,速度快原创 2022-01-20 21:45:59 · 786 阅读 · 2 评论 -
视图,存储过程,函数,触发器
MySQL 高级 视图 视图就是将他被存储在数据库中,可以重复使用,视图中并不存储数据 定义视图 CREATE VIEW 视图名 AS SELECT 列 1,列 2... FROM 表(查询语句); 使用视图 SELECT * FROM 视图名 删除视图 drop view 视图名 CREATE VIEW sel_news AS SELECT n.id, n.title, t.type_name FROM news n LEFT JOIN TYPE t ON n.typeid =原创 2022-01-19 22:46:16 · 560 阅读 · 1 评论 -
线程池(构造器中参数,执行,拒绝策略,关闭, ThreadLocal)
线程池 不需要频繁创建和销毁 为什么使用线程池? 并发量大的情况下频繁的创建销毁线程开销大 创建线程池来缓解压力 构造器中各个参数的含义(7个) corePoolSize:核心线程池数量,在创建后,核心线程池数量默认为0,有任务来了后才会去创建线程去执行,或者调用prestartAllCoreThreads或者prestartCoreThread()方法进行预创建 maximumPoolSize:线程池总数量,表示在线程中最多能装多少个线程 unit:为keepAliveTime定义时间单位 keepAli原创 2022-01-18 21:54:34 · 524 阅读 · 0 评论 -
JUC 类(ConcurrentHashMap ,CopyOnWriteArrayList,CopyOnWriteArraySet ,辅助类)ReentrantLock和Synchronized
JUC 类 hashMap是线程不安全的不能并发操作 hashTable是线程安全的有synchronized修饰,将锁直接加到put()上,效率低,相当于吧整个hash表锁住了,用在低并发情况下可以,独占锁 ConcurrentHashMap ConcurrentHashMap 是线程安全的,采用锁分段机制,并没有将整个hash表锁住,但是jdk8之后没有使用分段锁(给每个位置创建一个锁标志对象),采用的是CAS思想+synchronized来实现 插入时检测hash表对应的位置是否是第一个节点,如果是,原创 2022-01-17 19:31:33 · 258 阅读 · 0 评论 -
并发编程(多线程,JMM,可见性,有序性,原子性,volatile关键字,锁,JUC)
回顾线程基本内容 程序:用某种语言编写的,为实现特定功能的静态程序,安装在硬盘上 进程:运行中的程序,是操作系统分配内存空间的单位 线程:线程是进程中的最小执行单元,是CPU调度单位,线程依赖于进程 创建线程 1.继承Thread类,重写run() 2.类 实现Runable接口,重写run() 创建Thread类的对象,为其分配任务 3.类 实现Callable接口,重写call() 有返回值,可以抛出异常 创建Thread类的对象,为其分配任务 常用方法 run() call() start() 设置名原创 2022-01-16 18:37:36 · 317 阅读 · 1 评论