zoukankan      html  css  js  c++  java
  • MySQL 经典面试题

    MySQL 面试

    1 存储过程

    **什么是存储过程 **
    存储过程是一些编译好的SQL语句
    因为系统在调用SQL的时候比较浪费时间,所以之前先将一些基本的额SQL语句代码进行编译(对单表或多表的增删改查),然后再给代码取一个名字,在需要这个功能时去调用它就可以了。
    优缺点

    • 存储工程是编译后的代码 效率高
    • 存储过程代替SQL语句,降低网络通信
    • 在一定的程度确保数据安全

    2 索引

    索引是什么
    索引是对数据库中一或多个列值的排序,帮助数据库高效获取数据的数据结构
    假如我们用类比的方法,数据库中的索引就相当于书籍中的目录一样,当我们想找到书中的摸个知识点,我们可以直接去目录中找而不是在书中每页的找,但是这也抛出了索引的一个缺点,在对数据库修改的时候要修改索引到导致时间变多。
    **几个基本的索引类型 普通索引 唯一索引 主键索引 全文索引 **
    索引优点

    • 加快检索速度
    • 唯一索引确保每行数据的唯一性
    • 在使用索引的过程可以优化隐藏器,提高系统性能

    索引缺点

    • 插入删除 修改 维护速度下降
    • 占用物理和数据空间

    3 事务

    事务的作用
    事务(Transaction)是并发控制的基本单位。事务就是一系列的操作,这些操作要么都执行,要么都不执行。
    事务具有以下4个基本特征

    • Atomic(原子性) 事务中的一系列的操作要么都完成,要么全部失败
    • Consistency(一致性) 一个成功的事务应该讲数据写入的到数据库,否则就要回滚到最初的状态
    • Isolation(隔离性) 并发访问和修改的duli
    • Durability(持久性) 事务结束应该讲事务的处理结构存储起来
      事务的语句
    • 开始事物:BEGIN TRANSACTION
    • 提交事物:COMMIT TRANSACTION
    • 回滚事务:ROLLBACK TRANSACTION

    4 数据库中的乐观锁和悲观锁

    根据不同类型可以对数据设置不同的锁权限
    ** 乐观 悲观 锁 主要是作用在并发访问控制**

    • 悲观锁 假定会发生并发冲突,屏蔽任何违反数据完整的操作
    • 乐观锁 假定不会发生冲突,只有在提交操作时检查是否违反数据的完整性

    5 drop, delete truncate的区别

    三者都是删除的意思,但是三者个有些区别

    • delete和truncate只删除表的数据不删除表的结构
    • 速度 drop > truncate > delete
    • 想删除部分数据时, delete 删除时要带上where语句
    • 保留表而想删除所有的数据时用truncate

    6 超键 候选键 主键 外键 区别

    超键在关系中能唯一标识元组的属性集称为关系模式的超键 ,一个或多个属性组合在一起作为超键。
    候选键 最下超键,没有冗余元素的超键
    主键 数据库中表中唯一和完整标识的数据列或属性集合。
    外键 在一个表中存在另外一个表的主键叫做外键

    7视图

    定义 视图是一种虚拟表,可以对视图进行增删查改 。可以将一个表多个表组合成一个视图。对视图的修改不影响基本表。

    8 数据库三大范式介绍

    • 1NF 字段是最小单元,不可再分

    • 2NF 满足1NF 表中字段必须完全依赖全部主键而并非部分主键

    • 3NF 满足2NF,非主键外的所有字段必须互不依赖

        4.数据库三范式
        第一范式  字段具有原子性,不可再分
        第二范式  表中的每列都和主键相关
        第三范式  每列都和主键列直接相关,而不是间接相关
  • 相关阅读:
    JVM运行参数
    JVM学习
    自己瞎写的小项目随笔
    git入门
    @ResponseBody 注释
    jquery 正则表达式 验证邮箱 手机号 座机号 身份证
    ORACLE计算一年的12个月份
    css 图片 文字居中
    Jquery 取值相关
    标题栏下拉菜单
  • 原文地址:https://www.cnblogs.com/wangshouchang/p/6930443.html
Copyright © 2011-2022 走看看