mysql的主从复制
mysql为了保持高可用,会采用一主多从的结构,一个master节点,多个slave节点,master节点可以进行写操作,而slave节点只能进行读操作。
binlog线程:将主服务器上的数据更改写入二进制日志中
I/O线程:从主服务器上读取二进制日志,并写入从服务器的重放日志中
SQL线程:读取重放日志并重放其中的SQL语句
mysql的聚集索引、非聚集索引
聚集索引:以主键创建的索引,在叶子结点上存储的是表中的数据;
非聚集索引:以非主键创建的索引,叶子结点上存储的是主键和索引列;
使用非聚集索引查询出数据时,拿到叶子上的主键再去查到想要查找的数据。(回表)
mysql联合索引,要注意什么?
联合索引即索引由多个列(a,b,c,d)组成,要注意索引的命中,最左匹配原则,从左开始命中,遇到范围查询就不能进一步匹配。
为什么数据库要使用B+树来实现索引?
①更少的查找次数(B+树相比红黑树更矮胖);
②利用磁盘预读特性(一次IO能完全载入一个节点);
4、编程
HTTP协议中GET和POST的区别
①get请求重点在从服务器上获取资源,而post请求重点在向服务器发送数据。
②get传输数据是通过URL请求,以字段=value的形式,用?连接置于URL之后,多个请求数据之间用&连接,这个过程用户可见,不安全,参数暴露。post传输数据是将字段与对应值封存在请求实体中发送给服务器,这个过程用户不可见,隐藏式的请求,相比是安全的。
③get传输的数据量小,受URL长度的限制,但是效率高。post传输数据量不受限制,可以传输大量数据,所以传输文件时只能使用post,但是效率较低。请求较多时可能形成一个请求队列。
④get方式只支持ASCII字符,因此向服务器传输中文有可能出现乱码。post支持标准字符集,可以正确传递中文字符。
HTTPS怎么建立请求?
HTTPS = HTTP + SSL(Secure Sockets Layer, 安全套接字层)
HTTPS 可以防窃听(非对称密钥加密)、防伪装、防篡改(加密和认证)。
客户端发送请求到服务器端;
服务器端返回证书和公开密钥,公开密钥作为证书的一部分而存在;
客户端验证证书和公开密钥的有效性,如果有效,则生成共享密钥并使用公开密钥加密发送到服务器端;
服务器端使用私有密钥解密数据,并使用收到的共享密钥加密数据,发送到客户端;
客户端使用共享密钥解密数据;
SSL加密建立...