不吹不擂,你想要的Python面试都在这里了【315+道题】+精心整理的解答

2021-05-15 15:28

阅读:618

标签:class   mys   sql   mysq   图片   5.7   锁定   业务   src   

  • Part01-Py基础篇(80)

  • Part02-网络编程和并发(34)

  • Part03-数据库和缓存(46)

  • Part04-前端框架和其他(155)

Part01-Py基础篇(80)

Part02-网络编程和并发(34)

Part03-数据库和缓存(46)

1、列举常见的关系型数据库和非关系型数据库都有哪些?

  1.1 关系型数据库:Oracle、MySQL、DB2、Microsoft SQL Server、PostgreSQL、Microsoft Access、SQLite、Hive;

  1.2 非关系型数据库(NoSQL):MongoDB、Redis、ElasticsearchCassandra、HBase

  详情见权威的数据库排行榜:https://db-engines.com/en/ranking

  1.3 关系型与非关系型数据库的区别:

  • 关系型数据库

  1、特点:

  1. 基于单一关系模型,结构化存储,有完整性约束;
  2. 通过二维表建立数据之间的联系;
  3. 采用结构化查询语言(SQL)做数据读写;
  4. 操作保存数据的一致性

  2、优点:

  1. 通过事务处理保持数据的一致性;
  2. 数据更新的开销很小;
  3. 可以进行Join等复杂查询;
  4. 20多年的技术历程,技术成熟;

  3、缺点:

  1. 数据读写必须经过sql解析,大量数据、高并发下读写性能不足;
  2. 为保证数据一致性,需要加锁,影响并发操作;
  3. 无法适应非结构化的存储;
  4. 大量数据集中到一台服务区处理,使服务器不堪重负;
  5. “阻抗失谐”,即数据库中存储的对象与实际的对象实体有一定的差别;
  6. 扩展困难;
  7. 数据库庞大,价格昂贵;
  • NOSql数据库

  1、特点:

  1. 非结构化的存储;
  2. 基于多维关系模型;
  3. 部署容易,开源免费,成本低;

  2、优点:

  1. 处理高并发、大批量数据的能力强;
  2. 支持分布式集群,负载均衡,性能高;
  3. 解决“阻抗失谐”问题;
  4. 内存级数据库,查询速度快;
  5. 存储格式多,支持key-value形式、文档形式、图片形式;
  6. 没有多表连接查询机制的限制,扩展性高;

  3、缺点:

  1. 技术起步晚,维护工具以及技术资料有限;
  2. 不支持sql工业标准;
  3. 没有join等复杂的连接操作;
  4. 事务处理能力弱;
  5. 没有完整性约束,对于复杂业务场景支持较差;

技术分享图片

 

技术分享图片

 

技术分享图片

2、MySQL常见数据库存储引擎及比较?

  数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。MySQL的核心就是存储引擎。

2.1 常见存储引擎;

  MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用同一存储引擎,针对具体的要求,可对每一张表使用不同的存储引擎。MySQL5.7 支持的存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等。使用show engines语句来进行查看。

  • InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL5.5.5之后,InnoDB作为默认的存储引擎。

  • MyISAM基于ISAM的存储引擎,并对其进行扩展。它是在Web、数据库存储和其他应用环境下最常使用的存储引擎之一,MyISAM拥有较高的插入、查询速度,但是不支持事务。MySQL5.5.5之前的版本中,是默认的存储引擎;

  • MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问;

2.2 如何选择?

         
         
         
         
         
         
         
         

 

3、简述数据三大范式?

4、什么是事务?MySQL如何支持事务?

5、简述数据库设计中一对多和多对多的应用场景?

6、如何基于数据库实现商品计数器?

7、常见SQL(必备)

8、简述触发器、函数、视图以及存储过程?

9、MySQL索引分类

10、索引在什么情况下遵循最左前缀的规则?

11、主键和外键的区别?

12、MySQL常见的函数?

13、列举创建索引但是无法命中索引的8种情况?

14、如何开启慢查询日志?

15、数据库导入导出命令(结构+数据)

16、数据库优化方案?

17、char和varchar的区别?

18、简述MySQL的执行计划?

19、在对name做了唯一索引的前提下,简述以下区别?

 select * from tb where name = ‘Oldboy-Wupeiqi’ ? 

select * from tb where name = ‘Oldboy-Wupeiqi’ limit 1

20、1000w条数据,使用limit offset分页时候,为什么越往后翻越慢?如何解决?

21、什么是索引合并?

22、什么是覆盖索引?

23、简述数据库读写分离?

24、简述数据库分库分表?(水平、垂直)

25、Redis和memcached的比较

26、Redis中数据库默认是多少个db及作用

27、Python操作Redis的模块?

28、如果Redis总某个列表的数据量非常大,如何实现循环显示每一个值?

29、Redis如何实现主从复制?以及数据同步机制?

30、Redis中的sentine的作用?

31、如何实现Redis集群?

32、Redis中默认有多少个哈希槽?

33、简述Redis有哪几种持久化的策略及比较?

34、列举Redis支持的过期策略?

35、MySQL里有2000w的数据,redis中只存20w数据,如何保证Redis中都是热点数据?

36、写代码,基于Redis的列表实现先进先出,后进先出队列,优先级队列?

37、如何基于Redis实现消息队列?

38、如何基于Redis实现发布和订阅?以及发布订阅和消息队列的区别?

39、什么是codis及其作用?

40、什么是twemproxy及其作用?

41、写代码实现Redis事务操作?

42、Redis中的watch的命令的作用?

43、基于Redis如何实现商城商品数量计数器?

44、简述Redis分布式锁和redlock的实现机制?

45、什么是一致性哈希?Python中是否有相应模块?

46、如何高效低找到Redis中所有以oldboy开头的key?

Part04-前端框架和其他(155)

不吹不擂,你想要的Python面试都在这里了【315+道题】+精心整理的解答

标签:class   mys   sql   mysq   图片   5.7   锁定   业务   src   

原文地址:https://www.cnblogs.com/tqtl911/p/9750709.html


评论


亲,登录后才可以留言!