美文网首页数据库专家Python
数据库面试基础整理

数据库面试基础整理

作者: 猫咪早安晚安 | 来源:发表于2018-11-08 16:42 被阅读123次
    1. 什么是存储过程、优缺点
      存储过程是一个预编译的sql语句,只需要创建一次,可以调用多次。
      如果某次操作需要执行多次sql,那么选择使用存储过程速度会更快。
    • 优点:效率高、安全性高、减少网络传输、可维护、可扩展
    • 缺点:移植性差、开发调试复杂
    1. 索引的作用、优缺点
      索引是特殊的查询表,类似查询目录。
    • 优点:加快数据检索速度
    • 缺点:数据录入速度减慢,增加数据库大小
    1. 什么样的字段适合建索引
      唯一、不为空、常被查询的字段
    2. 什么是事物
      事务是一系列严密的操作,所有操作必须成功完成,任何一个语句操作失败都会使整个操作失败,就会回滚到操作前状态。
    3. 事物的特性
    • 原子性,要么执行,要么不执行
    • 隔离性,所有操作全部执行完以前,其它会话不能看到过程
    • 一致性,事务前后,数据总额一致
    • 持久性,一旦事务提交,对数据的改变就是永久的
    1. 什么是视图,优缺点
      视图是一种虚拟表,可以增、改、查,对视图的修改会影响基本表。
    • 优点:可以有选择性的选取数据库中的一部分、简化数据操作、数据有一定的安全性
    • 缺点:性能差、修改限制
    1. 简述三大范式
      1NF:原子性,不可再分
      2NF:属性完全依赖于主键
      3NF:非主属性不传递依赖其他非主属性
    2. 主键和外键的区别
      逐渐确定一条记录的唯一标识,外键用于与另一张表的关联,保持数据一致性
    3. MySQL常见的函数
    • 聚集函数:
      avg()平均值
      sum()和
      min()最小值
      max()最大值
      count()行数
    • 字符串处理函数
      left()从左开始截取
      right()从右开始截取
      substring()截取字符串
      substring_index()按关键字截取字符串
    • 数值处理函数
      abs()绝对值
      ceil()向上取整
      floor()向下取整
      mod()取模
      rand()随机数
      round()四舍五入
    • 时间处理函数
      now()当前日期时间
      month(date)日期中选择月份
      year(date)日期中选出年份
      hour(time)日期中选出小时
    1. 高并发访问数据库优化方法
    • 服务器配置优化
    • 使用负载均衡技术
    • 数据库结构设计
    • 中间件的优化
    • 数据缓存技术的使用
    1. 查询语句速度慢,如何优化
    • 建索引
    • 减少表之间的关联
    • 优化sql,少做全表查询
    • 简化查询字段
    • 返回结果控制,尽量返回少量数据
    • 尽量使用PreparedStatement代替Statement
      (PreparedStatement代码的可读性和可维护性高,提高性能,提高了安全性)
    1. Oracle和Mysql的区别
    • 库函数不同
    • Oracle用表空间来管理,Mysql不是
    • 显示当前所有的表、用户、改变连接用户、显示当前连接用户、执行外部脚本的语句的不同
    • 分页查询时候时候,mysql用limit,oracle用rownum
    1. 封锁?封锁的基本类型?含义?
      封锁是当一个事务在对某个数据对象(数据项、记录、数据集、以至整个数据库)进行操作之前,必须获得相应的锁,以保证数据操作的正确性和一致性。
      类型:排它锁、共享锁
    • 排它锁:简称为X锁,采用原理是禁止并发操作。
    • 共享锁:简称为S锁,采用原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改。
    1. Delete、truncate、drop的区别
    • delete 属于DML,删除数据,保留表结构,需要commit,可以回滚,数据量大较慢。
    • truncate 属于DDL,删除所有数据,保留表结构,自动commit,不能回滚,一次全部删除所有数据,速度相对较快。
    • Drop属于 DDL,删除数据和表结构,不需要commit,删除速度最快。

    MongoDB相关知识整理

    1. MangoDB的特点
    • 高性能、易部署、易使用
    • 面向集合存储、易存储对象类型
    • 支持动态查询、完全索引、复制、故障恢复
    • 二进制数据存储,包括大型对象(如视频)
    • 自动处理碎片
    • 支持Python、PHP、Ruby、Java、C、C#、JavaScript、C++等语言驱动程序
    • 文件存储格式BSON
    • 可通过网络访问
    1. MangoDB适用场合
    • 更高的写入负载:适合有大量低价值数据的场景(低事物安全性)。
    • 高可用性:MangoDB可以快速响应处理结点故障,自动、安全,适用于相对不稳定的环境中,保持高可用性(云主机)。
    • 大量数据或未来即将很大的数据:MySQL完成数据扩展较难,但MongoDB内建多种数据分片特性,能很好的适应大量数据的需求。
    • 基于位置的数据查询:MangoDB支持二维空间索引,能快速、精准的从指定位置获取数据。
    • 表结构不明确,且数据不断变大

    相关文章

      网友评论

        本文标题:数据库面试基础整理

        本文链接:https://www.haomeiwen.com/subject/bibwxqtx.html