-
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.3 关系型与非关系型数据库的区别:
1、特点:
- 基于单一关系模型,结构化存储,有完整性约束;
- 通过二维表建立数据之间的联系;
- 采用结构化查询语言(SQL)做数据读写;
- 操作保存数据的一致性
2、优点:
- 通过事务处理保持数据的一致性;
- 数据更新的开销很小;
- 可以进行Join等复杂查询;
- 20多年的技术历程,技术成熟;
3、缺点:
- 数据读写必须经过sql解析,大量数据、高并发下读写性能不足;
- 为保证数据一致性,需要加锁,影响并发操作;
- 无法适应非结构化的存储;
- 大量数据集中到一台服务区处理,使服务器不堪重负;
- “阻抗失谐”,即数据库中存储的对象与实际的对象实体有一定的差别;
- 扩展困难;
- 数据库庞大,价格昂贵;
1、特点:
- 非结构化的存储;
- 基于多维关系模型;
- 部署容易,开源免费,成本低;
2、优点:
- 处理高并发、大批量数据的能力强;
- 支持分布式集群,负载均衡,性能高;
- 解决“阻抗失谐”问题;
- 内存级数据库,查询速度快;
- 存储格式多,支持key-value形式、文档形式、图片形式;
- 没有多表连接查询机制的限制,扩展性高;
3、缺点:
- 技术起步晚,维护工具以及技术资料有限;
- 不支持sql工业标准;
- 没有join等复杂的连接操作;
- 事务处理能力弱;
- 没有完整性约束,对于复杂业务场景支持较差;
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+道题】+精心整理的解答
原文:https://www.cnblogs.com/tqtl911/p/9750709.html