• MySQL数据库相关


    1、内联,左外联,右外联,全连接,交叉连接的区别

    2、什么是视图?以及视图的使用场景有哪些?

    视图是一种虚拟的表,具有和物理表相同的功能
    只暴露部分字段给访问者,所以就建一个虚表,就是视图。
    查询的数据来源于不同的表,而查询者希望以统一的方式查询,这样也可以建立一
    个视图,把多个表查询结果联合起来,查询者只需要直接从视图中获取数据,不必
    考虑数据来源于不同表所带来的差异

    3、视图作用

    数据库视图隐藏了数据的复杂性。
    数据库视图有利于控制用户对表中某些列的访问。
    数据库视图使用户查询变得简单。

    4、说一下事务的特性?

    原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,
    要么均不执行。
    一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行
    执行的结果相一致。
    隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他
    事务必须是透明的。
    持久性(Durability):对于任意已交事务,系统必须保证该事务对数据库的改变不
    被丢失,即使数据库出

    5、SQL注入原理

    sql 注入漏洞产生的原因最常见的就是字符串拼接SQL 语句,这种漏洞可以利用注
    释语句绕过验证
    如 select name from userinfo where name=‘alex’ and password = ‘888’
    用户如果在 name 字段输入 alex’ or 1=1 --f 就可以成功绕过验证。
    要解决这个问题就不能在程序中拼接 sql 语句,例如使用 pymysql 的 execute 方法,
    这个方法会自动对用户输入的引号特殊字符做转义

    6、简单说一说 drop、delete 与 truncate 的区别

    delete 和 truncate 只删除表的数据不删除表的结构
    速度,一般来说: drop> truncate >delete
    delete 语句是 del,这个操作会放到rollback segement 中,事务提交之后才生效;
    如果有相应的 trigger,执行的时候将被触发。
    truncate,drop 是 ddl, 操作立即生效,原数据不放到 rollback segment 中,不能回滚. 操
    作不触发 trigger。
    使用场景:
    不再需要一张表的时候,用 drop
    想删除部分数据行时候,用 delete,并且带上 where 子句
    保留表而删除所有数据的时候用 truncate

    7、数据库怎么优化查询效率?

    1. 在where、join on、orderby使用到的字段上加上索引,防止查询时判断null,可能会导致全表扫描
    2. 避免使用or来连接查询条件,可能导致全表扫描,可以用union或者union all
    3. 避免使用like查询,否则会全表查询
    4. 不使用select *,只查询必须的字段
    5. 能用 UNION ALL 的时候就不用 UNION,UNION 过滤重复数据要耗费更多的 cpu资源
    6. 避免 Update 全部字段,否则频繁调用会引起明显的性能消耗,同时带来大量日志
      总结:
      1)避免模糊查询,or ,like
      2)在常用字段加索引,例如 WHERE、JOIN ON 和 ORDER BY 使用到字段上应该加索引
      3)尽量避免全局性的读写操作,例如 SELECT * 、Update 全部字段
  • 相关阅读:
    03.UDP套接字与原始套接字
    物流行业采购协同管理系统:规范采购体系,加快物流行业采购数字化升级
    SaaS 架构实现理论(二)多租户/高性能多租户
    130-Vue中的监听事件——Watch
    Vue(路由插件)
    【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】
    圆满完成重保网络防护行动,持安科技获西南兵工致信感谢
    PCL点云处理之基于强度特征的SIFT关键点提取法 (二百一十五)
    “夭折“的AirPower将复活?iPhone开启长距离无线充电
    【机器学习】集成学习(以随机森林为例)
  • 原文地址:https://blog.csdn.net/Sun123234/article/details/132699804