数据库

2018-07-02  本文已影响14人  汤圆叔

事务特性ACID是什么?

数据库隔离级别是有哪些?

数据库为我们提供的四种隔离级别:

什么是脏读、幻读、不可重复读、第一类丢失更新、第二类丢失更新?

MySQL的主从复制机制了解吗?

MySQL 的 Replication 是一个基于 Binary Log 文件复制的同步过程,从 Master instance 复制到 Slave instance。整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。

针对主从数据的一致性,MySQL 的 Replication 分为:
异步模式:MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理。注意:MySQL5.5版本以上才支持
完全同步模式:当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。
半同步模式:介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。注意:半同步模式的主从同步超时仍会转为异步模式,待通讯正常时才会恢复为半同步模式

针对具体的数据复制,Binary Log内容包含:
基于SQL语句的复制:statement-based replication, SBR。
基于行的复制:row-based replication, RBR。
混合模式复制:mixed-based replication, MBR。(常用)

详情参考 MySQL半同步复制mysql 主从复制原理mysql数据库主从配置详解以及主从实现原理分析

MySQL集群你们是如何部署的?

目前公司的日订单量在10000左右,所以未做分库分表,仅做了读写分离处理,集群架构上采用的一主多从模式,同时为了保证各结点的高可用通过 Keepalived+Vip 的方式加了同步备份结点,备机正常情况下不提供服务。


主从+备机

Mysql的MyISAM与InnoDB引擎了解吗?你们是如何使用的?

你们都使用过哪些类型的索引?这些索引的原理清楚吗?

常用的索引有:普通索引、唯一索引、主键索引、组合索引、全文索引(MyISAM的like查询场景),索引的存储类型主要有:B-Tree、Hash两种,它们的特性如下:

Mysql索引的最左前缀匹配了解吗?

最左前缀匹配,对于组合索引,当查询条件精确匹配索引的左边连续一个或几个列时,
索引可以被用到,但是只能用到一部分,即条件所组成的最左前缀。

Mongodb用过吗?你们是如何使用的?

一般Mongodb用于存储查询频率较高的海量数据、数据结构灵活多变的业务场景,现在系统的订单轨迹、商品评价、商品属性信息都是用过Mongodb进行存储的。

Mysql的索引优化了解吗?你们是如何优化的?

主要在索引的结构、SQL的查询两方面进行优化:

Mysql加锁过程了解吗?

详情参见:Mysql加锁过程详解

数据库锁都有哪几类,它们的原理是什么?锁与事务的关系了解吗?

详情参考:理解innodb的锁(record,gap,Next-Key lock)

Mysql更新时哪些情况使用行锁,哪些情况使用表锁?如何对锁的使用情况进行具体的分析?

更新时除了。详情参见:不恰当的update语句使用主键和索引导致mysql死锁MySQL并发更新数据加锁处理

数据量很大且访问量很高的数据库表在更新时应尽可能避免仅根据非主键的几个字段就进行更新。而是应该首先将要更新的记录查出来然后逐条按主键id更新。

Mysql查询计划了解吗?

MySQL高级 之 explain执行计划详解

数据库分库分表怎么做的?分片技术了解吗?

数据库使用过程中踩过哪些坑?

数据库索引遇到过哪些问题?如何处理的?

上一篇下一篇

猜你喜欢

热点阅读