Python面试数据库

2023-11-02

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

   关系型 : MySQL,SQL Server ,Oracle , Sybase, DB2
   非关系型 : Redis, MongodDB

2.MySQL常见数据库引擎及比较?

  InnoDB,MyISAM,NDB,Memory等

3.简述数据三大范式?

1. 第一范式:确保每列保持原子性
2. 第二范式:确保表中的每列都和主键相关
3. 第三范式:确保表中每一列都和主键列直接相关,而不是间接相关.

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

事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务

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

一对多 : 一个学校有多个老师.

多对多 : 一个老师可以带多个班级,一个班级有多个老师

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

  详情

7.常见SQL(必备)

  详情

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

  详情

触发器: 在执行某种操作前后一些自定义的操作
函数: 处理参数,返回结果
视图: 把需要的数据存放在一张临时表中
存储过程: sql语句集,简化了一些操作.与函数不同,他可以返回一个结果集(查询结果)

9.MySQL索引种类

  详情

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

联合索引

11.主键和外键的区别?

主键 : 该表中此列唯一,非空

外键 : 该列中的值必须是关联表中关联的数据

12.MySQL常见的函数?

详情

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

详情

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

详情

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

  Mysqldump -h127.0.0.1 -P3306  -uroot -p密码 数据库名称>xx.sql

16.数据库优化方案?

详情

17.char和varchar的区别?

#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 及作用?

0-15,相当于不同的库

27.python操作redis的模块?

redis模块

28.如果redis中的某个列表中的数据量量非常大,如果实现循环显示每一个值?

def list_iter(name):
    """
    自定义redis列表增量迭代
    :param name: redis中的name,即:迭代name对应的列表
    :return: yield 返回 列表元素
    """
    list_count = r.llen(name)
    for index in xrange(list_count):
        yield r.lindex(name, index)

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

在从服务器中配置 SLAVEOF 127.0.0.1 6380 # 主服务器IP,端口 

30.redis中的sentinel的作用?

监控主机状态,实现高可用

31.如何实现redis集群?

 安装集群软件

32.redis中默认有多少个哈希槽?

16384

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

---------rdb:快照形式是直接把内存中的数据保存到一个dump文件中,定时保存,保存策略

---------aof:把所有的对redis的服务器进行修改的命令都存到一个文件里,命令的集合

34.列列举redis支持的过期策略略。

  • voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
  • volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
  • volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
  • allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
  • allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
  • no-enviction(驱逐):禁止驱逐数据

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

redis内存数据级上升到一定大小时,就会实行数据淘汰策略,从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

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

class Zhan:
    def __init__(self,conn):
        self.conn = conn
    def push(self,val):
        self.conn.rpush('aaa',val)
    def pop(self):
        return self.conn.rpop('aaa')
 
class Dui:
    def __init__(self,conn):
        self.conn = conn
    def push(self,val):
        self.conn.rpush('bbb',val)
    def get(self):
        return self.conn.lpop('bbb')
 
class Xu:
    def __init__(self,conn):
        self.conn = conn
    def push(self,val,count):
        self.conn.zadd('ccc',val,count)
    def get(self):
        a = self.conn.zrange('ccc', 0, 0)[0]
        self.conn.zrem('ccc', a)
        return a

37.如何基于redis实现消息队列列?

将列表维护成一个栈,设置获取数据的超时时间

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

发送消息 : conn.publish(名称,消息)

接收消息 : conn.sunscribe(名称)

区别 :  消息队列,收到消息只会有一个处理者;发布订阅,所有的订阅者都会收到消息并进行处理

39.什么是codis及作用?

豌豆荚团队提供的一个分布式 Redis 解决方案

40.什么是twemproxy及作用?

Twemproxy 又称 nutcracker ,是一个memcache、redis协议的轻量级代理,一个用于sharding 的中间件。有了Twemproxy,客户端不直接访问Redis服务器,而是通过twemproxy 代理中间件间接访问。

作用 : 对redis数据分片处理

41.写代码实现redis事务操作。

import redis
  
pool = redis.ConnectionPool(host='10.211.55.4', port=6379)
  
conn = redis.Redis(connection_pool=pool)
  
# transaction默认为False,只可以完成批量提交的作用,节省网络延时
# 改为True后可以实现事务功能
# pipe = r.pipeline(transaction=False)
pipe = conn.pipeline(transaction=True)
# 开始事务
pipe.multi()
  
pipe.set('name', 'alex')
pipe.set('role', 'sb')
pipe.lpush('roless', 'sb')
  
# 提交
pipe.execute()

42.redis中的watch的命令的作用?

加锁

43.基于redis如何实现商城商品数量计数器?

字符串的decr可以实现自减操作

44.简述redis分布式锁?

为redis集群设计的锁,防止多个任务同时修改数据库,其本质就是为集群中的每个主机设置一个会超时的字符串,当集群中有一半多的机器设置成功后就认为加锁成功,直至锁过期或解锁不会有第二个任务加锁成功

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

详情

46.如何高效的找到redis中所有以oldboy开头的key?

# 命令模式
KEYS * # *代表通配符
 
# redis模块
import redis
con = redis.Redis()
con.keys(pattern='celery*') # *代表通配符

 

转载于:https://www.cnblogs.com/xinyangsdut/p/9183652.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python面试数据库 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar

随机推荐

  • C语言零基础入门习题(四)分苹果

    前言 C语言是大多数小白走上程序员道路的第一步 在了解基础语法后 你就可以来尝试解决以下的题目 放心 本系列的文章都对新手非常友好 Tips 题目是英文的 但我相信你肯定能看懂 一 Mr Wang wants to give some ap
  • C++编程命名规范

    C 编程命名规范 PS 根据多年工作经验和其它命名规范整理而成 个人感觉比较规范的标准 现应用于我的开发团队 一 命名通用规则 文件名 函数名 变量名命名应具有描述性 不要过度的缩写 类型变量是名词 函数名是动词或动词 名词 函数名必须是指
  • 编译原理笔记

    目录 序章 编译原理 编译器 程序设计语言 第一章 概述 机器语言 第一代语言 特点 汇编语言 高级程序设计语言 鼻祖 时期 特点 翻译程序 汇编语言 解释语言 编译程序 编译过程 词法分析 语法分析 语义分析 中间代码生成 之前三步都是编
  • MongoDB数据库的基本操作

    一 使用async await对CRUD进行封装 1 定义dao层 数据库访问层 专门用于访问数据库 不和接口直接联系 2 定义service层 服务层 通过调用dao层的方法来获取数据 将结果通过res对象响应给客户端 3 路由接口 功能
  • odoo14本地开发部署

    odoo本地开发部署 1 使用git在本地安装odoo 1 1地址 https github com odoo odoo 1 2 复制https里面链接 git clone http github com odoo odoo git 1 2
  • maven打包,依赖也打进jar包

    一 如果没有依赖第三方包 可以用maven jar plugin插件 只是修改META INFO下的MANIFEST MF信息 指定运行jar包的main入口
  • [代码审计] fengcms1.32从详细漏洞分析到漏洞利用

    前言 这是我在此发表的第一篇代码审计的文章 仅供学习参考 首发于哈拉少安全小队微信公众号 一 Cms初识 FengCms 由地方网络工作室基于PHP MYSQL开发 是一款开源的网站内容管理系统 系统支持自由订制模型 你完全可以用FengC
  • 感知机算法(原始和对偶)——100%还原统计学习方法的python代码实现,每行都有注释,超清晰

    参考 统计学习方法 第二版 李航著 目录 一 感知机的定义 二 感知机模型 三 感知机学习策略 四 感知机学习算法 4 1感知机学习算法的原始形式 4 2 感知机学习算法的对偶形式 一 感知机的定义 假设输入空间 特征空间 是 输出空间是
  • [第五空间 2021]pklovecloud

  • VScode如何设置默认自动换行设置

    VScode安装完默认不能自动换行 文本超出显示时 需要拖动下面的滑块才能看到超出的部分 如图 看起来很不方便 自动换行 为了更方便看代码 我们可以设置自动换行显示 在菜单 查看 切换自动换行 选中 就可以自动换行了 或者直接按快捷键 AL
  • c++中的栈内存和堆内存的区别以及智能指针的使用

    栈内存和堆内存的区别 https www cnblogs com ChenZhongzhou p 5685537 html https blog csdn net qianyayun19921028 article details 8036
  • python如何实现前后端交互_笔记

    前端工程师的职责 1 UI重构 2 在正确的区域渲染出服务端的数据 毕竟 我们要构建一个大的web应用 必然不是普普通通的静态页面构成 下文将罗列前端工程师应该必备的同后端打交道的常用技能 1 服务端渲染 谈起服务端渲染 对于动态服务而言
  • 不均衡数据集采样2——BorderlineSMOTE算法(过采样)

    论文 Borderline SMOTE A New Over Sampling Method in Imbalanced Data Sets Learning https citeseerx ist psu edu viewdoc down
  • 高级JS(堆、栈、作用域、闭包、原型、this指向)

    一 变量的内存分配 基本数据类型 number string boolean undefined null symbol 引用数据类型 object array object function 基本数据类型 都是存放在栈内存中 栈内存空间大
  • 接口测试工具Postman(三)使用postman抓包捕获HTTP请求

    目录 一 捕获HTTP请求 二 代理 一 捕获HTTP请求 Postman提供了轻松查看和捕获应用程序中发送和接收的实际HTTP请求流量的工具 可以在Postman本机应用程序中使用内置代理进行抓包 1 postman内置代理 postma
  • python实现AI井字棋极大极小算法和Alpha-beta算法

    python实现AI井字棋极大极小算法和Alpha beta算法 程序设计思路 主要步骤和代码 对于两个算法流程图 运行结果 程序设计思路 大致思路 井字棋最后的结果无非就是玩家赢 电脑赢和平局三种结果 而最后的结果正对应这整棵棋盘生成树的
  • 辞职后的一些感想

    辞职了 不急着找工作 一直独立开发app 整天码UI取数据填数据 知识得不到沉淀 以前的blog都删了没什么意思 重新开始做个总结 也算个新启程吧
  • 87.el-table翻页后保存前一页所选并再次返回前一页时把数据勾选上

    1 首先给
  • 汇编基础知识

    一 汇编语法 1 GNU 汇编语法适用于所有的架构 并不是 ARM 独享的 GNU 汇编由一系列的语句组成 每行一条语句 每条语句有三个可选部分 如下 label instruction comment label 即标号 表示地址位置 有
  • Python面试数据库

    1 举常见的关系型数据库和非关系型都有那些 关系型 MySQL SQL Server Oracle Sybase DB2 非关系型 Redis MongodDB 2 MySQL常见数据库引擎及比较 InnoDB MyISAM NDB Mem