- 博客(6)
- 收藏
- 关注
原创 mysql进阶
遵循最左前缀法则,最左边的列必须存在,如果最左边的列不存在,整个联合索引失效,如果最左边的列存在,但中间跳过了某一列,那么后面的列失效;回表查询:查询的时候先走二级索引检索到这一行数据的id,再根据id到聚集索引中查找数据。前缀索引:遇到字符串长度较长或大文本数据,可以使用前缀索引缩小长度。如果mysql评估如果走全表扫描比走索引快,那么索引失效。覆盖索引:查询返回的列在索引结构中都包含不要需要回表查询。or连接的条件如果一侧有索引一侧无索引 ,那么索引失效。不要再索引列上进行函数运算,否则索引失效。
2023-02-11 13:49:05
100
原创 多线程、锁面试题
synchronized有如下三种使用方式当一个线程访问同步代码块时,需要获得锁才能执行,当退出或者抛出异常的时候要释放锁。我们来看一段代码。
2022-10-21 10:43:49
247
原创 Java集合面试题
第一 线程是否安全方面:hashmap是线程不安全的,hashtable是线程安全的;hashtable内部的方法经过synchronized修饰(如果要保证线程安全的话就是用concurrentHashMap)第二 效率方面:因为线程安全的问题,hashmap要比hashtable效率高点 ,另外,hashtable已经被淘汰。不要在代码中使用它。第三 对null key 和null value的支持方面:hashmap中,null可以作为键,这样的键只有一个,可以有一个或多个键所对应的值为null。
2022-10-20 15:42:20
220
原创 Redis面试题
在高并发下,大量缓存key再同一时间失效,大量请求直接落在数据库上,导致数据库宕机redis缓存中和数据库都没有相关数据(例 用户直接携带id
2022-10-20 14:09:52
274
原创 第二次面试所提问的问题
map中存储的数据是无序的,其键是不能重复的,值可以重复;set中存储的数据是无序的,且不允许有重复,但元素在集合中的位置是由元素的hashcode值决定的,位置是固定的(set根据hashcode进行数据存储,所以位置是固定的,但是位置不是用户能控制的,所以对于用户来说set中的元素还是无序的。hashmap是基于哈希表的map接口实现,以key-value的形式存在,是map的一个实现类,hashmap是无序的,因为hashmap中的元素在数组中的位置是由元素的hash值决定的。...
2022-07-26 09:11:33
178
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅