- pooled和unpooled是哪个里面的—->IO精讲中的netty(NIO)
- 数据库连接池的多数据源
- jdbc的原理
- 自定义datasource
- jvm中的initialContext的lookup方法
- log4j提供的是一个实现模板,slf4j是其中一个具体实现—->logback
- 写代码的时候要记录日志,之后可以容易地切入ELK平台(ES等三种技术合成的一个日志分析平台!!!)
- mysql中的唯一约束可以为null,并且唯一索引是自动创建的
- 数据库建表时没有给唯一约束,但是业务端进行了唯一约束,这时候要衡量建立唯一索引还是普通索引
- 唯一索引不需要回表,普通索引需要回表
- mysql操作生产环境的数据的时候最好使用数据库提供的自动回滚,而不要用手工去回滚恢复数据,因为那样不可靠
- 11中先开启一个事务,进行更新,然后查询一下,结果不正确就进行回滚,否则直接提交
mysql开启事务之后,进行增删改查等操作仍然会执行,可以在事务中查到事务中更改的结果,写操作的结果也会展示出来;但是真正持久化到磁盘要进行commit之后才会进行,而进行回滚rollback会撤销事务中的操作
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql中数据库、表和列的字符集是独立的,互不影响(或者是原来的字符集不会收到更改的影响?)
- binlog可以叫归档日志,也可以叫二进制日志
- mysql中打印排名的时候可以定义变量来完成—->select @t4:=1;
- 手动编号、排序、排名
- 看sql语句不要从头到尾看,而是把sql语句拿出来列层次目录的关系!!!
- 先看内层再看外层,一层一层的看,不能从头开始没目标的看
- 一两百行的sql语句在公司中常见
- linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower_case_table_names决定的
- 与1与列名 的区别!!!效率上、逻辑上……
- in和not in效率上、原理
- exists
- 四张表往往两两拆分,三张表直接join
- 一般join的时候起别名,其他的时候不起别名
- 表进行连接join的时候可以多次join同一张表或者……
- sql中求补集一般不能直接加个非!!!要搞清逻辑关系
- 当一个字段出现多次的时候,可以用IN来限制!
- 搜东西的时候先从简单的开始,从难到易再从易到难
- 《mysql高性能调优》
- 数据库离不开事务无论什么时候都存在事务只不过是可能是自动提交可能是手动提交
- 可以单独设置某一个会话的事务隔离级别?—->用于测试的两个会话都要执行这个设置
- 在同一个事务中,任何时刻读取到的数据都应该是一模一样的—->一致的,可重复读—->实际的例子:存取款的例子,存取之后的结果要保持一致性,而不能出现问题(否则会让客户产生困惑)
设置隔离级别的时候一般不会设置session,假如不同的会话的隔离级别不一样的话数据就会很混乱、很离谱了;一般在使用数据库的时候,两边的隔离级别必须设置成一样的;设成不一样的隔离级别,数据可能会乱得非常离谱,数据会根本不一致了(可能最终持久化到磁盘是一致的,但是展示出的效果仍然是不一致的,也有可能会出错)
set session transaction isolation level ……会话
set global transaction isolation level ……全局
Oracle数据库的默认隔离级别;MySQL数据库的默认隔离级别
- 不可重复读和幻读在查询的时候效果一样,但是幻读指的是插入或者修改数据(删除???)的时候会产生幻读,查询数据的时候是不会产生幻读的;而不可重复读是在读数据的时候产生的;幻读:查不到但是存在
- 分布式锁和分布式事务redis和zookeeper
- java代码中也可以使用CLOB和BLOB,但是很少使用!!!这两种类型一般用来存放大对象!!!
- java中double不能精确表示每一个值,decimal可以用来精确表示每一个值
- Oracle数据库的系统学习要看书,还要考OCI、OCP的证书很麻烦
- Oracle中的库都是一个一个的实例,而不是像MySQL中直接create的那样
- Oracle中要用哪个数据库就把哪个数据库实例的服务起起来就可以了,不要启动其他无关的数据库!!!
- Oracle数据库的相关使用细节、方式、原理也得了解了解!!!
- 不加锁就是不需要获取锁来进行操作,所以可以直接操作
- 要能够想到缓存的事情
- myisam默认的锁调度机制是写优先
- ❓关iptables和firewalld区别???
- IO的瓶颈在于随机读写,而不是顺序读写;顺序读写非常快!!!binlog非常快
- MTS(Multi-Threaded Slave)并发复制原理(自学):使用之后不会有延时问题了,任何时刻主从中的数据都是一样的(从哪个库中读都无所谓),但是会产生一个问题(公众号 insert MySQL的时候)
- 采用rpm包的方式安装软件——>rpm -ivh **
- java中泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法
- 泛型
- Java的优先队列默认是小根堆