zoukankan      html  css  js  c++  java
  • 物理外键和逻辑外键的区别

    最近公司打算项目重构,提出了一些问题,其中有一条是关于数据同步的:使用DBSYNC 工具对数据库结构保持一致;所有物理外键删除

    1.当看到物理外键的时候,第一反应是有物理外键那一定有逻辑外键,那我熟悉的外键是什么?

            物理外键指的是使用foreign key 作为外键关联另一张的字段的连接方法,而且限定了引擎为InnoDB,而逻辑外键,又叫做事实外键,是因为存在语法上的逻辑关联而产生的外键,需要有连接关键词inner join 或者left join 等等和连接部分,也就是on后面的部分,如果需要对应的设置,也可以加上set等语句。

    为何说所有物理外键删除,因为外键有性能问题:
    1.数据库需要维护外键的内部管理;
    2.外键等于把数据的一致性事务实现,全部交给数据库服务器完成;
    3.有了外键,当做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,而不得不消耗资源;
    4.外键还会因为需要请求对其他表内部加锁而容易出现死锁情况
    作者:justabug
    链接:https://www.zhihu.com/question/39062169/answer/156096473
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     
     

            DBSYNC是一款关于数据同步备份的异构数据库之间的同步工具,7*24小时不间断更新

    2.而异构数据库是什么呢?

            从名字上看是不同结构的数据库,就相当于一个集合吧,举个例子,集合里有SQLserver、mysql等等。

            百度里是这样子解释的:        

       异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,几个数据库系统在加入异构数据库系统之前本身就
    已经存在,拥有自己的数据阵管理系统、外构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍有自
    己的应用特性、完整性控制和安全性控制。

      

  • 相关阅读:
    Tomcat && Servlet
    List,Set,Collections工具类
    多表查询
    常用的API--集合
    msmpeng.exe阻止移动硬盘弹出
    接口400错误解析
    JDBC/Mybatis连接数据库报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    tomcat启动报错:A child container failed during start
    PAT 1019 数字黑洞
    PAT 1017 A除以B
  • 原文地址:https://www.cnblogs.com/xww115/p/11199283.html
Copyright © 2011-2022 走看看