mysql
文章平均质量分 74
Chenzxxxx
这个作者很懒,什么都没留下…
展开
-
【JAVA面试合集】
AOF重写指的是在重写时,Redis 根据数据库的现状创建一个新的 AOF 文件,也就是说,读取数据库中的所有键值对,然后对每一个键值对用一条命令记录它的写入。AOF重写具备多变一能力,使原本多条命令合并成一条。AOF重写不会阻塞主线程,由后台线程bgrewriteaof完成。重写具体来说分为一处拷贝,两处日志。拷贝指的是重写时主线程会fork出子线程,然后把主线程的内存数据拷贝给子线程。两处日志指的是:1.原本的AOF日志缓冲区。2.AOF重写的日志缓冲区。原创 2023-07-02 18:10:17 · 120 阅读 · 0 评论 -
Mysql面试(五)(join语句优化)
MRR优化(Multi-Range Read )NLJ(Index Nested-Loop Join)算法和BNL(Block Nested-Loop Join)都有优化的空间。MRR优化的主要目的是尽量使用顺序读盘。select * from t1 where a>=1 and a<=100;什么是回表,回表就是,Innodb在普通索引a上查找到主键id,在根据这个主键id到主键索引上去查整行数据。而这个回表的过程,是一条一条查的。如果随着 a 的值递增顺序查询的话,id 的值就变原创 2020-08-03 15:10:42 · 168 阅读 · 0 评论 -
Mysql面试(四)(join语句相关)
驱动表,被驱动表我们将两张表进行join语句关联时,例如,假设有t1表(id int primarykey(id) , a int key(a), b int) , t2表 (id int primarykey(id) , a int key(a), b int),t1和t2都有主键索引id和普通索引a,t1有100条数据,t2有1000条数据,select * from t1 straight_join t2 on (t1.a = t2.a) 如果直接使用join,Mysql优化器可能会选择表t1,原创 2020-08-03 11:30:24 · 235 阅读 · 0 评论 -
Mysql面试(三)(sql优化相关)
尽量使用聚簇索引,或者使用覆盖索引聚簇索引的叶子节点存放的是整行数据,而非主键索引也就是二级索引的叶子节点是主键的值,所以根据二级索引去查询的话会根据拿到的主键id回到聚簇索引里面在查一次,称为回表。而使用覆盖索引就是说在查询的时候只查索引树上已经有的值,比如直接查询主键id,这样就不需要回表了。使用explain查看语句的预执行行数是否符合预期值,判断mysql是不是选错索引了优化器在选择索引的时候,往往会根据预计扫描的行数,是否需要回表等来判断选择哪个索引,也就是说预计扫描行数是mysql选索引原创 2020-06-23 15:52:26 · 102 阅读 · 0 评论 -
Mysql面试(二)(事务相关)
事务四大特性:ACID:原子性,一致性,隔离性,持久性。隔离性:读未提交:一个事务还没提交时,他做的变更就能被其他事务看到。读提交:一个事务提交之后,他做的变更才会被别的事务看到。可重复读:一个事务在执行的过程中总是和他启动时所看到的数据一致。串行化:隔离级别最高,对于同一行记录,读会加读锁,写会加写锁。当发生读写冲突时后访问的事务必须等待前一个事务执行完,才能继续执行。事务隔离的实现(MVCC):在mysql中,每条记录在更新的时候都会生成一条回滚操作,记录上的最新值可以根据回滚操作得到之原创 2020-06-15 18:04:26 · 117 阅读 · 0 评论 -
Mysql面试(一)
一条sql语句是如何执行的?1.首先进来是连接器,连接器负责跟客户端建立连接,获取权限,维持和管理连接。连接命令mysql -hip−pip -pip−pport -u$user -p连接成功后,连接器会到权限表查出你拥有的权限。一个建立好的连接,即使你登录管理员账号修改其权限,也不会影响已存在连接的权限,只有在新建的连接才有新的权限。可以使用show processlist查看连接状态。如果长时间没有动作,连接会处于sleep状态。如果客户端长时间没动静,连接器会自动将他断开。由参数wait_原创 2020-06-08 16:33:55 · 90 阅读 · 0 评论