从朋友手里所得,感觉极好,推荐给大家。 作者QQ: 一.功能说明: 本工具用于对比SQL数据库,以源数据库为标准 数据库, 然后拿目标数据库与标准数据库比较,如果目标数 据库少 了表,或少了字段,或字段类型长度不一样,或索引 不一样, 或存储过程,视图,触发器,默认值等不一样,就产生 相应的S QL语句! 二.操作方法: 先把源数据库的连接属性(数据库名,服务器名, 用户名, 密码)填好,按读源数据,然后再填目标数据库的连 接属性, 按比对,就会产生相应的SQL语句,然后按执行按钮, 或在查 询分析里执行这些段语句就OK! 操作举例: 程序开发员自己电脑上的数据库是最新的,而某 客户的 数据库和程序都是N年前的,现在要用新程序的功 能,那就 可用这个工具,先在程序员电脑上运行本工具,填 上数据库 属性,按'读源数据',然后把这个工具程序及同目录 下的sour ce.mdb一起拿到客户的电脑上,运行,填上数据库属 性,按'比 对',然后按'执行',一切都OK了!
背景:由于业务需求,我们将Oracle中的数据库同步到MySQL数据库中,且对表的字段和逻辑做了部分调整,所以需要对比的是MySQL数据库中表的数据与Oracle数据库中表的数据是否一致! 那么现在就来介绍一下我是怎么实现测试的吧? 在这个过程中有些表设计的数据有20多万条,而有些设计的数据也才几百条。在我学会以下方法之前我都试用的Excel表格来对比数据的,虽然Excel表格的函数很强大,但处理...
1.KV键值 2.文档性数据库 CouchDB MongoDB 3.列存储数据库 Cassandra HBase 分布式文件系统 4.图关系数据库 四者的对比
开发中通常有测试数据库和正式数据库,在测试数据库对表添加了字段的话,总不能一条条改过去。 1.打开Navicat,选择工具----结构同步、 2.左右两边选择要对比的连接以及数据库 3.点击对比,然后选择要对比同步的表,点击部署并运行
数据库服务和客户端...MongoDB 与关系型数据库对比 1.与关系型数据库术语对比 2.存储数据对比
)数据库技术和事务处理专家:Jim Gray() (五)C.J.Date(戴特)金典力作 (六)DonChamberlin(钱柏林)——SQL之父 五、主流数据库 (1)关系数据库和非关系数据库对比 (2)非关系型数据库 (3)主流关系数据库 以上有的图是自己在网上找,如有侵权(可删),其他都是自我总结而得
作者:牧小熊,华中农业大学,Datawhale成员
有读者留言面试有点虚,数据库都忘的差不多了,与其临时抱佛脚,不如我们把MySQL的知识点梳理一遍,心中有知识点,面试不慌。
数据库的话我只对MySQL有些熟悉,因此我们以MySQL为主进行知识点的整理。
MySQL知识点学习的开源教程:
由于作者水平的限制和可能的整理疏漏,有错误和不足的地方烦请指出。
举个例子,对于 学生信息(学号 身份证号 性别 年龄 身高 体重 宿舍号)和 宿舍信息(宿舍号 楼号):
存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。
视图:是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改会影响基本表。
查询视图时,必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,那么就无法更改数据。
临时表只在当前连接可见,当关闭连接时,MySQL会自动删除表并释放所有空间。因此在不同的连接中可以创建同名的临时表,并且操作属于本连接的临时表。创建临时表的语法与创建表语法类似,不同之处是增加关键字TEMPORARY:
非关系型数据库以redis为例,NOSQL是基于键值对的,而且不需要经过SQL层的解析,所以性能高,查询速度快。同时由于是键值对,数据之间没有耦合,容易水平扩展。
关系数据库:使用SQL语句方便在多个表之间做复杂查询,同时有较好的事务支持,支持对安全性有一定要求的数据访问。
需要注意的是,遵循数据库范式会一定程度影响数据库的查询效率,因此会存在反范式的优化。
数据库索引,是数据库管理系统中一个排序的数据结构,索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
索引的作用:协助快速查询、更新数据库表中数据。
唯一的,不为空的,经常被查询的字段适合建立索引
hash索引是键值对的索引,检索效率非常高;B+树索引需要从根节点到枝节点索引,最后才能访问到数据。
为什么不都用Hash索引而使用B+树索引?
Hash索引仅仅能满足"=","IN"和""查询,不能使用范围查询,hash是索引也不能用来做排序操作,hash的索引不能利用部分索引键查询。
B树,每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为nul,叶子结点不包含任何关键字信息。
B+树,所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接,所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键字。
关于B+树的索引可以参考五分钟学算法的讲解:【面试现场】为什么MySQL数据库要用B+树存储索引?
MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。
InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。
MVCC是一种多版本并发控制机制,是MySQL的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。
MVCC实现原理。通过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的创建版本号和删除版本号,然后Innodb的MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行所有快照连接起来。
现在大多数时候我们使用的都是InnoDB,但是在某些情况下使用MyISAM更好,比如:MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。在数据库做主从分离的情况下,经常选择MyISAM作为主库的存储引擎。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。