GC调优
数据库索引分类,引擎,之间的区别,锁(表锁和行锁,如何对多条语句加锁)
数据库事务特性 事务的隔离级别 不同事务隔离级别会出现什么问题
存储引擎的区别
左连接,右连接,内连接,全连接
select语句怎么用锁的
如何设计一个数据库表,多对多关系映射如何设计。
sql优化
mysql逻辑分层
innodb(默认) : 事务优先 行锁 高并发
myisam:性能优先 表锁
查询数据库引擎?show engines; show engines \g;
指定数据库引擎:在创建表后面加上:ENGINE=MyISAM;
sql优化
原因:性能低,连接查询,索引失效,服务器参数
1.sql语句
编写过程:select from join on where group by
解析过程:fro on joini where group by having select
2.sql优化主要就是优化索引
索引:相当于书的目录。index:帮助高效获取数据的数据结构。树:B树(小的放左,大的放右)(Mysql)
索引弊端:
1.索引本身很大
2.索引不适用:少量数据/频繁更改/很少使用的字段
3.降低增删改的效率
索引优势:
1.提高查询效率(降低io使用率)
2.降低cpu使用率(B树索引是排好序的结构,在需要排序时可以直接使用)
三层B树可以放上百万条数据
Btree:一般指b+树,也就是所有数据存放在叶子节点中。
索引
1.索引分类
主键索引:不能重复 id 不能是null
单值索引:单列 一个表可以有多个单值索引
唯一索引:不能重复 id,可以是null
复合索引:多个列构成的索引(相当于二级目录)
2.创建索引
create 索引类型 索引名 on 表(字段)
方式1:
单值索引:create index dept_index on tb(dept);
唯一索引:create unique index name_index on tb(name);
复合索引:create index dept_name_index on tb(dept,name);
方式2:
单值索引:alter table tb add index dept_index(dept);
唯一索引:alter table tb add unique index name_index(name);
复合索引:alter table tb add index dept_name_index(dept,name);
注意:如果一个字段是primary key,则该字段默认就是主键索引
3.删除 drop index 索引名 on 表名
4.查询索引 show index from tb;
5.sql性能问题
-sql执行计划:explain 可以模拟sql优化器执行sql语句,从而知道sql状况
explain+sql语句 explain select * from tb;
id值(查询编号)相同:
表的执行顺序会因数量的个数改变而改变的原因:笛卡尔积
数据小的表优先查询,中间结果小,占用空间小,但最终结果一样。
id值不同:
多表查询转化为子查询
id值大的先查询。(嵌套子查询,先查内层)
id值有不同有同
select type
primary:子查询sql中的主查询(最外层)
subquery:子查询(非最外层)
simple:简单查询(不包含子查询,union)select * from table
derived:衍生查询(使用时用到了临时表,例如cr)
1.from 子查询 只有一张表
select cr.cname from (select * from cource where tid in (1,2)) cr;
2. from 子查询中,如果有table1 union table 2,table1 就是derived
select cr.cname from (select * from cource where tid=1 union select * from cource where tid=1)cr;
-sql查询优化会干扰
判断链表是否存在环。
Java包里面的线程池 ,怎么用的,关键参数,workqueue,线程如何调用线程池里的各个参数
用过哪些保证线程安全的策略。synchronized关键字了解多少,volatile关键字呢,二者的区别。CAS操作以及可能会遇到的问题。
线程之间的通信
JAVA里的锁,介绍下synchronized关键字的原理,1.8做了哪些优化
equals方法和hashcode方法关系,给你一个自定义类如何实现equals方法。
实际运行环境中如何感知某一个线程挂掉。
什么函数不能构成虚函数
spring的生命周期
aop的实现方式
countdownlatch
给一个任意数组,偶数放在数组左边,奇数放在数组右边,相对次序不变,怎么实现?更好的方法呢
• 给两个集合,找到这两个集合中的相同元素,如何实现?更好的方法呢
• 如果存放1亿条数据,怎么处理
rabbitmq消息中间件聊了一下,自己对幂等性理解存在误区吧,
原文:https://www.cnblogs.com/NeverGiveUp0/p/11142257.html