面试题
Moses·Zhen
这个作者很懒,什么都没留下…
展开
-
数据库的优化方案
1.优化索引、SQL语句、分析慢查询2.设计表的时候严格根据数据库的设计凡事来设计数据库3.使用缓存,把经常访问到的数据且不经常变化的数据放在缓存中,节约磁盘IO4.优化硬盘,采用SSD,使用磁盘队列技术5.采用MySQL内部自带的表分区技术,把数据分成不同的文件,能够提高磁盘的读取效率6.垂直分表,把不经常读的数据放到一张表中,节约磁盘IO7.主从分离读写,采用主从复制把数据库的读操作和写入操作分离出来8.选择合适的表引擎(innodb和myisam)Innodb和myisam原创 2020-05-19 15:27:49 · 268 阅读 · 0 评论 -
关于Redis的若干问题
1、什么是RedisRedis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:(1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载进行使用。(2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储。...原创 2020-02-20 13:41:00 · 301 阅读 · 0 评论 -
常见的反爬手段、原理以及应对思路
应对反爬的主要思路就是:尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现。1.通过User-Agent反爬爬虫发送请求时,请求头中默认没有User-Agent,或者提供非正常的UA。应对思路:在请求时添加UA具体应对: requests模块发送请求时在headers参数中UA键值对 selenium默认自带被控制浏览器的UA,也可以替换U...原创 2019-06-04 20:09:40 · 3357 阅读 · 1 评论 -
Python 的内存管理机制及调优手段
Python的内存管理机制:引用计数、垃圾回收、内存池引用计数:引用计数是一种非常高效的内存管理手段, 当一个 Python 对象被引用时其引用计数增加 1, 当其不再被一个变量引用时则计数减 1. 当引用计数等于 0 时对象被删除。垃圾回收 :1. 引用计数引用计数也是一种垃圾收集机制,而且也是一种最直观,最简单的垃圾收集技术。当 Python 的某个对象的引用计数降为...转载 2019-06-16 15:16:26 · 212 阅读 · 0 评论 -
Redis为什么会比MySQL快?
1.Redis是基于内存存储的,MySQL是基于磁盘存储的2.Redis存储的是k-v格式的数据。时间复杂度是O(1),常数阶,而MySQL引擎的底层实现是B+Tree,时间复杂度是O(logn),对数阶。Redis会比MySQL快一点点。3.MySQL数据存储是存储在表中,查找数据时要先对表进行全局扫描或者根据索引查找,这涉及到磁盘的查找,磁盘查找如果是按条点查找可能会快点,但是顺序查找...原创 2019-06-14 16:21:46 · 7511 阅读 · 0 评论 -
网络传输方式-UDP和TCP
UDPUDP:英文全拼(User Datagram Protocol)简称用户数据报协议,它是无连接的、不可靠的网络传输协议。udp网络传输协议好比现实生活中写信。1.1 UDP特点因为udp发送数据之前不需要建立连接所有具有以下特点无连接 资源开销小 传输速度快 udp每个数据包最大是64K1.2 UDP的优缺点优点:传输速度快 不需要连接,资源开销小缺点:...原创 2019-05-27 12:20:49 · 1794 阅读 · 0 评论 -
Python2与Python3的字符串区别
Python中的字符串类型和编码: 在Python3中: 1. bytes 类型 : 表示所有 非Uncode编码的数据(gbk、utf8、jpg、mp3、avi) 2. str 类型 : 表示 Unicode 字符串 注意:在Python3 代码里手动创建的字符串,默认都是 Unicode编码 (即 str 类型) ...原创 2019-05-24 10:53:50 · 305 阅读 · 0 评论 -
mysql中innodb和myisam对比
InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了1、事务和外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能MyISAM管理非事务表。它提供高速存储和检索,以...转载 2019-05-24 11:02:55 · 391 阅读 · 0 评论 -
MySQL的隔离级别
一、首先什么是事务?事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所有步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消之前到事务开始时的所有操作。二、事务的 ACID事务具有四个特征:原子性( Atomi...原创 2019-05-24 11:10:54 · 124 阅读 · 0 评论 -
Mysql的锁机制
锁机制定义:当有事务操作时,数据库引擎会要求不同类型的锁定,如相关数据行、数据页或是整个数据表,当锁定运行时,会阻止其他事务对已经锁定的数据行、数据页或数据表进行操作。只有在当前事务对于自己锁定的资源不在需要时,才会释放其锁定的资源,供其他事务使用。我个人对锁的理解是,某线程想要执行某个事务中的某条sql,必须得有某个锁。如果没有该锁,要等待自己获得该锁后才能执行相应操作。共享锁(Sh...原创 2019-05-24 11:16:30 · 159 阅读 · 0 评论 -
WSGI/uWSGI/uwsgi的区分
WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。要实现WSGI协议,必须同时实现web server和web application,当前运行在WSGI协议之上的web框架有Bottle, Flask, Django。...原创 2019-06-03 09:44:00 · 283 阅读 · 0 评论 -
redis与memcache区别以及应用场景
①redis支持更丰富的数据类型,共有5种(字符串,列表,hash,集合,有序集合),memcache只支持简单的字符串②redis可以数据持久化,它不仅会将数据放在内存中,还可以存到磁盘里部分,memcache会将数据存在内存中,最大存储量即内存大小③redis可以做主从④redis最大可以存1G,memcache最大1Mredis应用场景①session:可以做持久化②全页缓存(...原创 2019-06-14 16:26:53 · 366 阅读 · 0 评论 -
消息队列————RabbitMQ和kafka有什么区别?
1)在架构模型方面RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)...原创 2019-06-14 16:25:37 · 872 阅读 · 0 评论 -
TCP三次握手和TCP四次挥手
TCP三次握手标志位SYN: 表示连接请求 ACK: 表示确认 FIN: 表示关闭连接 seq:表示报文序号 ack: 表示确认序号 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 第二次握手:Server收到数据包后由标志位SYN=1知道Clie...转载 2019-05-24 16:52:17 · 114 阅读 · 0 评论