Java小强个人技术博客站点    手机版
当前位置: 首页 >>

MySQL索引失效的几种情况

8640 DB | 2023-2-11 20:35
借助 explain 执行计划来分析索引失效的具体场景。explain 使用如下,只需要在查询的 SQL 前面添加上 explain 关键字即可。示例:explain select * from test where id=1;以上查询结果的列中,我们最主要观察 key 这一列,key 这一列表示实......查看详细

MySQL 中datetime和timestamp

10870 DB | 2023-2-10 10:43
MySQL 中常用的两种时间储存类型分别是datetime和 timestamp。如何在它们之间选择是建表时必要的考虑。对于TIMESTAMP,它把写入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。占用空间timestamp  4 字节......查看详细

MySQL批量插入,如何判断重复

15290 DB | 2023-2-10 9:20
需要把其他库或者Excel中的数据批量导入到指定库中,业务中需要判断是否为重复数据,但是大量数据录入时判断是否重复,如何实现?创建测试表CREATE TABLE `test` ( `id`  int(11) NOT NULL AUTO_INCREMENT , `na......查看详细

MySQL的sql_mode模式说明

9200 DB | 2023-2-9 16:07
sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题.sql model 常用来解决下面几类问题(1) 通过设置sql mode, 可以完成不同严格程度的数据校验,有效地保障数据准备......查看详细

并发编程BlockingQueue、BlockingDeque

21720 理论 | 2022-10-2 14:56
BlockingQueue也叫做阻塞队列,在某些情况下对BlockingQueue的访问可能会造成阻塞。被阻塞的情况主要有如下两种:当队列满了的时候进行入队列操作当队列空了的时候进行出队列操作阻塞队列一共有四套方法用来进行增、删、查,当每套方法对应的操作不能马上执行时会有不同的反应,下面这个表格就分类列出了这些方法:这4类方法有不同的行为1,Throws E......查看详细

Future机制

14780 理论 | 2022-10-1 14:07
常见的两种创建线程的方式。一种是直接继承Thread,另外一种就是实现Runnable接口。这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。Future模式的核心思想是能够让主线程将原来需要同步等待的这段时间用来做其他的事情。(因为可......查看详细

并发编程之Java中Selector

20050 理论 | 2022-9-28 9:56
Selector提供选择执行已经就绪的任务的能力,使得多元 I/O 成为可能,就绪选择和多元执行使得单线程能够有效率地同时管理多个 I/O channel。C/C++许多年前就已经有 select()和 poll()这两个POSIX(可移植性操作系统接口)系统调用可供使用。许多os也提供相似的功能,但对Java 程序员来说,就绪选择功能直到 JDK 1.4 ......查看详细

并发编程之AtomicInteger,AtomicLong,LongAdder

16420 理论 | 2022-9-27 17:51
AtomicInteger类是系统底层保护的int类型,通过提供执行方法的控制进行值的原子操作。AtomicInteger它不能当作Integer来使用。AtomicInteger与使用同步执行相同操作相比,使用它同样更快,更易读。在 JDK1.5 中新增了并发情况下使用的 Integer/Long 所对应的原子类AtomicInteger 和 Atomic......查看详细