哈喽~,大家好,我是千羽。
下面分享我认识的一位大佬华中科技大学985硕,美团一面,全是基础,可惜挂了。
美团一面(fail)
数据库的四种隔离级别如下:
MySQL的默认隔离级别是可重复读(Repeatable Read)。
可重复读解决了脏读和不可重复读的问题,但是可能会出现幻读的问题。在这个隔离级别下,同一个事务内的多次读取结果是一致的,不同事务之间的读取结果互不干扰。
MySQL主从分布不一致可以通过以下方法解决:
sync_binlog
、read_only
等,可以增强数据的一致性和可靠性。sql_slave_skip_counter
跳过一步错误,之后再用mysql> show slave status/G
查看主从同步状态是否正常。一般单表到达几百万的时候,性能就会相对差一些,这时就得分表。分表是将一个表的数据放到多个表中,查询的时候只查一个表。例如,按照项目id来分表:将固定数量的项目数据放在一个表中,这样就可以控制每个表的数据量在可控的范围内。
分库则是将一个库的数据拆分到多个库中,每个库的表结构都一样,每个库的数据都不一样。所有库的并集是全量数据。
分库分表会遇到以下问题:
当冷数据变热时,Redis可以采取以下策略来处理:
思路:
class ListNode {
int val;
ListNode next;
public ListNode(int val) {
this.val = val;
}
}
public class RemoveDuplicates {
public ListNode removeDuplicates(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode prev = dummy;
ListNode curr = head;
while (curr != null && curr.next != null) {
if (curr.val == curr.next.val) {
ListNode temp = curr.next;
while (temp != null && temp.val == curr.val) {
temp = temp.next;
}
prev.next = temp;
} else {
prev = prev.next;
}
curr = curr.next;
}
return dummy.next;
}
}