每个软件工程师都应该知道的 10 种数据库
概述:在当今世界,数据无处不在。我们每天产生大量数据,并且呈指数级增长。根据最近的一项研究,预计全球创建、捕获、复制和消费的数据总量将迅速增加,到 2024 年将达到 149 泽字节。管理和组织这些数据的重要性对企业和组织来说至关重要。这就是数据库的用武之地。数据库是一种软件系统,可以存储、组织和检索大量数据,使企业和组织更容易有效地管理其信息。它们提供了一种结构化的方式来存储可以轻松访问、更新和分析的数据。有许多不同类型的数据库,每种数据库都有自己的优点和缺点。在本文中,我们将向您介绍 10 种最常见的数据库类型,解释它们是什么、它们如何工作以及它们最适合什么。无论您是软件工程师、数据分析师还是企
在当今世界,数据无处不在。我们每天产生大量数据,并且呈指数级增长。根据最近的一项研究,预计全球创建、捕获、复制和消费的数据总量将迅速增加,到 2024 年将达到 149 泽字节。管理和组织这些数据的重要性对企业和组织来说至关重要。
这就是数据库的用武之地。数据库是一种软件系统,可以存储、组织和检索大量数据,使企业和组织更容易有效地管理其信息。它们提供了一种结构化的方式来存储可以轻松访问、更新和分析的数据。
有许多不同类型的数据库,每种数据库都有自己的优点和缺点。在本文中,我们将向您介绍 10 种最常见的数据库类型,解释它们是什么、它们如何工作以及它们最适合什么。
无论您是软件工程师、数据分析师还是企业主,了解可用的不同类型的数据库都可以帮助您就如何存储和管理数据做出更好的决策。通过选择适合您需求的数据库,您可以提高应用程序的性能和可伸缩性,更好地利用资源,并从数据中获得有价值的见解。
因此,让我们深入了解并探索数据库的世界。
关系数据库是当今最常用的数据库类型。它们将数据组织到表中,每个表由一组行和列组成。列表示数据的不同属性或字段,而行表示数据的单个记录或实例。
关系数据库使用结构化查询语言 (SQL) 来访问和操作数据。SQL 允许用户从一个或多个表中检索数据,对数据执行计算和聚合,以及更新或删除表中的数据。
优点
关系数据库的主要优势之一是它们能够通过使用约束和关系来强制执行数据完整性和一致性。约束是限制可输入到表中的值的规则,而关系则定义表之间的连接方式。这些功能有助于确保数据准确可靠,这对企业和组织至关重要。
关系数据库非常适合处理结构化数据,例如财务记录、和库存数据。它们广泛用于业务应用程序,例如企业资源规划 (ERP) 系统、客户关系管理 (CRM) 系统和人力资源管理 (HRM) 系统。
缺点
但是,关系数据库在处理非结构化数据(如图像、视频和社交媒体帖子)方面可能不太有效。他们也可能难以处理具有复杂关系的数据,例如社交网络或供应链。
尽管存在这些局限性,但关系数据库仍然是一种功能强大且广泛使用的数据管理工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
SQL 数据库的示例包括 MySQL、Oracle 和 Microsoft SQL Server。
NoSQL数据库,顾名思义,就是不使用关系数据库使用的结构化查询语言(SQL)的数据库。相反,它们使用各种不同的数据模型(例如键值对、文档或图形)来存储和组织数据。与关系数据库不同,NoSQL 数据库可以处理非结构化和半结构化数据,例如社交媒体帖子、传感器数据或机器日志。它们具有高度可扩展性,可以处理分布在多个服务器上的大量数据。
NoSQL 数据库通常用于大数据应用程序,例如实时分析、内容管理和电子商务。它们在 Web 和移动应用程序中也很受欢迎,它们可以处理大量高并发性数据。例如,当像 Twitter 这样的流行社交媒体平台每秒处理数百万条推文时,不可能将所有这些数据存储在一个数据库中。NoSQL 数据库允许平台在多个数据库之间分发数据,从而可以处理高吞吐量和并发性。
优点
NoSQL 数据库被设计为高可用性,这意味着即使在硬件或软件故障的情况下,它们也可以继续运行。它们还可以具有高性能,提供比关系数据库更快的读取和写入速度。这使它们成为需要低延迟的实时应用程序(例如在线游戏或金融交易平台)的不错选择。
缺点
但是,NoSQL 数据库在处理数据之间的复杂关系(例如供应链或社交网络中的数据)方面可能不太有效。它们还可能缺乏关系数据库的数据一致性和完整性功能,这可能导致数据质量问题。这是因为 NoSQL 数据库优先考虑可用性和可伸缩性,而不是一致性。换句话说,他们可能愿意牺牲某种程度的一致性来保持高可用性和可伸缩性。
尽管存在这些局限性,但 NoSQL 数据库已成为管理现代应用程序中数据的越来越重要的工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。如果您正在处理大量非结构化或半结构化数据,NoSQL 数据库可以成为管理和组织数据的强大工具。
NoSQL 的示例包括 MongoDB、Cassandra、Amazon DynamoDB、Couchbase、Redis、Apache HBase。
面向对象数据库 (OODB) 是以面向对象格式存储数据的数据库。这意味着数据存储为对象,其中可以包含数据和行为。OODB 旨在处理复杂的数据结构和关系,使其成为处理高度互连数据的应用程序的理想选择。
在 OODB 中,数据存储为对象,这些对象是在数据库架构中定义的类的实例。每个对象都有自己唯一的标识,用于检索和操作对象。对象可以包含存储数据的属性和定义行为的方法。这允许在数据库中对复杂的数据结构和关系进行建模。
优点
OODB 的主要优势之一是它们能够处理复杂的数据结构和关系。它们特别适用于处理面向对象数据的应用程序,例如软件开发、计算机辅助设计和科学研究。OODB 也可以比关系数据库更灵活,因为它们不需要固定的架构。这使它们成为需要处理不断变化的数据结构或需要频繁更新架构的应用程序的不错选择。
缺点
但是,OODB 在处理简单的数据结构(例如财务记录或库存数据中的数据结构)时可能不太有效。对于某些类型的查询,它们的效率也可能低于关系数据库,因为面向对象的格式可能会使优化查询的性能变得更加困难。
尽管存在这些局限性,OODB 仍然是管理复杂面向对象数据的强大工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
OO 数据库的示例包括 Objectivity、Versant 和 ObjectDB。
图形数据库是以节点和边的形式存储数据的数据库,用于表示数据之间的关系。它们旨在处理数据之间的复杂关系,使其成为处理高度互连数据的应用程序的理想选择。
在图形数据库中,数据存储为表示实体的节点和表示实体之间关系的边。节点可以具有存储数据的属性,边可以具有描述节点之间关系的标签。这允许在数据库中对数据之间的复杂关系进行建模。
优点
图形数据库的主要优势之一是它们能够处理数据之间的复杂关系。它们特别适用于处理网络数据的应用程序,例如社交网络、物流网络和供应链。对于某些类型的查询,图形数据库也比关系数据库更有效,因为图形结构可以更轻松地遍历数据之间的关系。
缺点
但是,图形数据库在处理简单的数据结构(例如财务记录或库存数据中的数据结构)时可能不太有效。它们也可能不如关系数据库灵活,因为它们需要固定的架构。这可能会使处理更改的数据结构或对架构执行频繁更新变得困难。
尽管存在这些局限性,但图形数据库仍然是管理复杂、互连数据的强大工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
图形数据库的示例包括 Neo4j、Amazon Neptune 和 Microsoft Azure Cosmos DB。
时序数据库是针对存储和检索时序数据而优化的数据库,时序数据是随时间推移记录的数据。这种类型的数据常见于金融、物联网和监控系统等应用中。
时序数据库旨在处理大量带时间戳的数据,并提供对这些数据的快速高效访问。它们通常使用列式存储格式,允许对大型数据集进行快速读取和写入操作。它们还经常使用专门的查询语言和索引技术来实现对时间序列数据的高效查询和分析。
优点
时间序列数据库的主要优势之一是它们能够有效地处理大量带时间戳的数据。它们可用于存储和分析来自各种来源的数据,例如传感器、日志和社交媒体源。它们特别适用于需要实时分析时间序列数据的应用,例如金融交易系统或天气预报。
时序数据库还具有高度可伸缩性,因为它们可以跨多个服务器进行分区以处理大量数据。这使得它们成为需要处理大量数据或需要高可用性的应用程序的理想选择。
缺点
但是,时间序列数据库在处理数据之间的复杂关系(例如供应链或社交网络中的数据)方面可能不太有效。与其他类型的数据库相比,它们的灵活性也可能较低,因为它们针对时间序列数据进行了优化,可能不太适合其他类型的数据。
尽管存在这些限制,但时序数据库是管理和分析时序数据的强大工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
时序数据库示例包括 InfluxDB、TimescaleDB 和 OpenTSDB。
列族数据库是将数据组织到列族中的数据库,列族是存储在一起的列组。这样可以有效地检索经常一起访问的数据。
在列族数据库中,数据被组织成行,每行由多个列族组成。每个列族可以包含多个列,每个列包含一段特定的数据。这允许灵活的数据建模,因为不同的行可以具有不同的列族和列。
优点
列族数据库的主要优势之一是它们能够有效地处理大量数据。它们特别适用于需要对大型数据集进行快速读写操作的应用程序,例如内容管理系统或实时分析应用程序。
列族数据库还具有高度可伸缩性,因为它们可以跨多个服务器进行分区以处理大量数据。这使得它们成为需要处理大量数据或需要高可用性的应用程序的理想选择。
缺点
但是,列族数据库在处理数据之间的复杂关系(例如社交网络或供应链中的数据)方面可能不太有效。与其他类型的数据库相比,它们的灵活性也可能较低,因为它们针对列族数据进行了优化,可能不太适合其他类型的数据。
尽管存在这些限制,但列族数据库是管理和分析大型数据集的强大工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
列系列数据库的示例包括 Apache Cassandra、HBase 和 Amazon Keyspaces。
空间数据库是专门用于空间数据的存储、组织和检索的数据库。空间数据是指与特定位置或地理区域关联的数据,例如地图、卫星图像或 GPS 数据。
空间数据库旨在处理复杂的空间数据结构,例如面、点和线。它们使用专门的索引技术和查询语言来实现对空间数据的高效查询和分析。
优点
空间数据库的主要优势之一是它们能够有效地处理大量空间数据。它们可用于存储和分析来自各种来源的数据,例如天气数据、人口统计数据和交通数据。它们特别适用于需要空间分析的应用,例如城市规划、应急管理和环境监测。
空间数据库还具有高度可伸缩性,因为它们可以跨多个服务器进行分区以处理大量数据。这使得它们成为需要处理大量空间数据或需要高可用性的应用程序的理想选择。
缺点
但是,空间数据库在处理非空间数据或处理数据之间的复杂关系方面可能不太有效。它们也可能不如其他类型的数据库灵活,因为它们针对空间数据进行了优化,可能不太适合其他类型的数据。
尽管存在这些限制,但空间数据库仍是管理和分析空间数据的强大工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
空间数据库的示例包括 PostGIS、MongoDB 和 Elasticsearch。
面向文档的数据库是以文档形式存储数据的数据库,可以将其视为自包含的数据单元。每个文档都包含表示单个实体或对象所需的所有信息,并且可以以灵活的无架构格式存储。
在面向文档的数据库中,数据存储为文档,文档可以包含多种数据类型,包括字符串、数字、数组和子文档。文档可以是嵌套和分层的,允许在数据库中对复杂的数据结构进行建模。
优点
面向文档的数据库的主要优势之一是其灵活性和可伸缩性。它们旨在处理非结构化和半结构化数据,例如社交媒体帖子、文档和电子邮件。它们还可以处理分布在多个服务器上的大量数据,使其成为大数据应用程序的理想选择。
面向文档的数据库通常用于 Web 和移动应用程序,因为它们可以处理这些应用程序中常见的灵活数据结构和半结构化数据。它们还用于内容管理系统和电子商务平台,在这些平台中,它们可以处理大量高并发的数据。
缺点
然而,面向文档的数据库在处理数据之间的复杂关系(例如社交网络或供应链中的数据)方面可能不太有效。它们还可能缺乏关系数据库的数据一致性和完整性功能,这可能导致数据质量问题。这是因为面向文档的数据库优先考虑灵活性和可伸缩性,而不是一致性。
尽管存在这些局限性,但面向文档的数据库仍然是管理非结构化和半结构化数据的强大工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。如果您正在处理大量非结构化或半结构化数据,面向文档的数据库可以成为管理和组织数据的强大工具。
面向文档的数据库供应商的示例是 MongoDB。
顾名思义,内存数据库是主要将数据存储在内存中而不是磁盘上的数据库。这允许极快的读取和写入速度,使其成为需要低延迟和高吞吐量的应用程序的理想选择。
内存数据库通常用于需要实时处理数据的应用程序,例如金融交易系统或在线游戏平台。它们还可用于需要高速数据处理的应用,例如图像或视频处理。
优点
内存数据库的主要优势之一是它们的速度。由于数据存储在内存中,因此读取和写入操作的执行速度比基于磁盘的数据库快得多。这使得它们非常适合需要实时处理数据的应用程序。内存数据库还可以高度可扩展,因为它们可以分布在多个服务器上以处理大量数据。
缺点
但是,内存数据库在处理大量数据方面可能不太有效,因为内存通常比磁盘存储更昂贵。它们的持久性也可能不如基于磁盘的数据库,因为如果系统崩溃或断电,数据就会丢失。
尽管存在这些限制,内存数据库仍可以成为实时管理和分析数据的强大工具。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
内存数据库供应商的示例是 Apache Ignite。
NewSQL数据库是一种相对较新的数据库类型,它结合了NoSQL数据库的可扩展性和性能,以及传统关系数据库的数据一致性和完整性。它们旨在处理大量数据和高并发性,同时保持 ACID(原子性、一致性、隔离性和持久性)保证。
NewSQL 数据库使用各种不同的架构和数据模型,但它们都专注于可伸缩性、性能和数据一致性。它们通常使用分布式架构,允许跨多个服务器存储和处理数据,从而提供高水平的可扩展性和可用性。
优点
NewSQL 数据库的主要优势之一是它们能够处理复杂的数据结构和关系,同时提供强大的数据一致性和完整性保证。它们非常适合需要高并发性的应用程序,例如金融交易系统或实时分析应用程序。
NewSQL 数据库还具有高度可扩展性,因为它们可以分布在多个服务器上以处理大量数据。这使得它们成为需要处理大量数据或需要高可用性的应用程序的理想选择。
缺点
但是,NewSQL 数据库在处理非结构化或半结构化数据(例如社交媒体帖子或传感器数据)方面可能不太有效。与其他类型的数据库相比,它们的管理也更复杂,因为它们通常需要专业知识和专业技能来优化性能并确保数据一致性。
尽管存在这些局限性,但 NewSQL 数据库正成为管理大量复杂结构化数据的越来越受欢迎的选择。通过了解它们的优势和劣势,您可以更好地决定何时使用它们以及如何根据您的需求优化它们的性能。
NewSQL 数据库供应商的示例是 CockroachDB。
在这篇博文中,我们讨论了每个软件工程师都应该知道的 10 种类型的数据库。虽然有许多其他类型的数据库可用,但这些是最常用的数据库。了解不同类型数据库的优缺点可以帮助您就给定项目使用哪一个数据库做出明智的决策。
2022年12款受欢迎的实用数据库工具推荐
工欲善其事必先利其器,相信大家在日常运维数据库过程中都有一款得心应手的数据库工具,这能够让你的操作更加高效快捷。
在对用户的建议进行整理后,决定对2020年《DBA高效率实用工具推荐:几款强大的数据库工具集合!》文章进行更新升级,将一些最近十分受欢迎、正在被大家使用的数据库工具整理汇总,并搜集了一些相关操作文档和教程供参考整理成本文,希望大家能够从中发现适合自己的数据库的工具、提高工作效率!
- 通用型数据库管理工具
- 1、DBeaver
- 2、Navicat
- Oracle
- 1、PL/SQL Developer——呼声最高的数据库集成开发环境
- 2、Toad for Oracle——数据库管理工具集
- 3、SQL*Plus——Oracle内置的快捷工具
- MySQL
- 1、SQLyog——数据库管理可视化工具
- 2、MySQL WorkBench——开源版和商业版兼具的可视化工具
- 3、HeidiSQL——开源的轻量级图形化管理工具
- 4、Percona Toolkit——数据库管理工具集
- 其他
- 1、PostgreSQL 数据库管理工具:pgAdmin
- 2、 SQLite 数据库管理工具:SQLite Expert
- 3、SQL Server 数据库管理集成环境:SQL Server Management Studio (SSMS)
DBeaver是一款开源的通用数据库工具,支持非常丰富的数据库,是本次征集活动中用户呼声最大的前三名之一。
- 支持数据库类型:Oracle、MySQL、PostgreSQL、MariaDB、SQL Server、ClickHouse、SQLite、DB2、Apache Hive等80余种。
- 主要功能:DBeaver 它提供了一个图形界面用来查看数据库结构、执行SQL查询和脚本、浏览和导出数据、处理BLOB/CLOB数据,修改数据库结构等。对于高级数据库用户,DBeaver 建议使用功能强大的 SQL 编辑器、大量管理功能、数据和模式迁移功能、监视数据库连接会话等等。
- 是否付费:免费
下载地址:https://dbeaver.io/
相关操作资料:Mac 安装数据库管理软件 DBeaverWindows工具DBeaver连接OceanBase数据库访问MySQL和Oracle租户Dbeaver适配openGauss使用指导书DBeaver配置达梦DM8数据库链接
Navicat Premium 是一套数据库开发工具,能够让你从单一应用程序中同时连接多种数据库进行数据库管理,它也是本次征集活动中用户呼声最大的前三名之一。
- 支持数据库类型:MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite等。
- 主要功能:包括无缝数据迁移、能将不同格式的数据传输到数据库,同时它也是一款数据可视化工具,也能快速寻找和更正 PL/SQL 和 PL/PGSQL 编码时的错误。它可以让用户连接到本地或远程服务器,并提供一些实用的数据库工具以协助用户管理数据,包括云协同合作、数据建模、数据传输、数据同步、结构同步、导入、导出、备份、还原、图表、数据生成和自动运行等。并且它提供了Navicat for MySQL、Navicat for PostgreSQL、Navicat for MongoDB等多种独立解决方案,其中较多朋友推荐Navicat for MySQL。
- 是否付费:付费(官网提供免费试用)
下载地址:https://navicat.com.cn/products#navicat
相关操作资料:Navicat完全使用手册(上)Navicat完全使用手册(下)Navicat Premium 15 安装与激活
PL/SQL Developer 是由 Allround Automations 公司开发的面向Oracle数据库存储的程序单元的集成开发环境。其侧重于易用性、代码品质和生产力,能够充分发挥 Oracle 应用程序开发过程中的主要优势。
- 主要功能:PL/SQL Developer 具有语法加强、对象描述、代码助手、编译器提示、PL/SQL完善等许多特性和功能。可以在执行SQL查询、执行PL / SQL程序、运行调试会话等过程中继续工作,如果遇到编程错误,IDE将不会“挂起”。同时,PL/SQL Developer提供内置的报告功能,可以根据程序数据或Oracle字典运行报告。此外,使用 PL/SQL Profiler 可以浏览每一执行的 PL/SQL 代码行的时序信息,自动获取CPU使用情况、块I/O、记录I/O、表格扫描、分类等统计信息,从而帮助优化代码性能。它也是本次征集活动中用户呼声最大的选手。
- 是否付费:付费(官网提供免费试用)
下载地址:http://www.plsqldeveloper.com.cn/sub/sql-developer.html
相关操作资料:PL/SQL Developer 7超详细教程(中文)Oracle PL/SQL Developer 14用户指南(英文)PL/SQL Developer连接Oracle数据库详解
Toad for Oracle 是 Quest Software 研发的 Oracle 数据库管理工具集。广大的数据库开发人员、管理员和数据分析师可以借此简化工作流程、优化代码质量、自动化频繁或重复的流程,同时更大程度降低风险。
- 主要功能:使用者可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和PL/SQL代码编辑和测试工作。此外,Toad 提供简单易用的 PL/SQL 调试功能,可以逐行编辑、调试和运行代码,并且观察相关参数的变化来检查存储过程的正确性。SQLab Xpert Option 功能则可以提供各种优化模式下SQL执行计划,并能给出优化建议,帮助优化SQL。
- 是否付费:付费(官网提供免费试用)
Toad for Oracle 工具有面向 DBA 和面向开发者两个版本,在功能上有几处不同(见下图)。此外 Quest Software 也有专门的技术社区和详细使用文档供使用者学习。
下载地址:https://www.quest.com/cn-zh/products/toad-for-oracle/
相关操作资料:Toad for Oracle 11.6 中文使用指南Toad for Oracle 13安装使用图文教程Toad For SQL 简易使用指南
SQLPlus 工具是 Oracle 数据库提供的一个专门用于数据库管理的交互式工具,属于Oracle内置工具,在各版本都是预安装的,通过命令的方式对数据库进行管理。SQLPlus以其小巧、快捷为众多DBA们所喜爱。
- 主要功能:在 Linux/UNIX 环境下,通常都是通过这个工具来启动、关闭和维护数据库的。此外,其具有的功能也很丰富,包括执行SQL脚本、数据导出、应用程序开发/测试、用户管理及权限维护等。不同于其他工具直接操作,它需要单独学习SQL*Plus 命令来对数据库进行管理,但目前大家整理了很多SQL*Plus 命令资料,也比较方便学习使用。
- 是否付费:内置于Oracle
相关操作资料:Oracle 12cR2 SQL*Plus 用户指导手册(英文)Oracle 19c SQL*Plus 用户指导手册(英文)常用的SQL*Plus命令SQL*Plus 执行含中文的SQL
SQLyog 是 Webyog 公司开发的一款 MySQL 数据库管理可视化工具,可以通过简单的执行对数据库进行管理、查询、备份与同步等,支持 Windows 系统。
- 主要功能:SQLyog 拥有创建/删除/更改表、存储过程、函数、视图、触发器和事件等功能。通过可视化数据比较对比来自源端和目标端的数据,然后使用 SQLyog Job Agent 自动执行和计划两个 MySQL 主机之间的数据同步,并且不会造成数据库过载。同时,SQLyog 提供了一个功能强大的 GUI 查询生成器,可以验证和调度 SQL 查询以及执行维护查询。同时也支持 DBA 在物理、虚拟和云环境中轻松管理 MySQL 和 MariaDB。
- 是否付费:付费(官网提供免费试用)
下载地址:https://webyog.com/product/sqlyog/
相关操作资料:MySQL 管理工具之 SQLyog 的使用详解
MySQL Workbench 是 MySQL 出品的一款可视化数据库设计软件,为服务器配置、用户管理、备份等提供数据建模、SQL 开发和全面的管理工具。MySQL Workbench 可在 Windows、Linux 和 Mac OS X 上使用。同时有开源(MySQL Workbench Community Edition)和商业化(MySQL Workbench Standard Edition、MySQL Workbench Enterprise Edition)版本。
- 主要功能:MySQL Workbench 提供了一个可视化控制台,可以使用此工具来配置服务器、管理用户、执行备份和恢复、检查审计数据以及查看数据库运行状况。由此轻松管理 MySQL 环境并获得对数据库的更好可见性。SQL 编辑器提供了颜色语法突出显示、SQL 代码段的重用以及 SQL 的执行历史记录等功能。同时,可以通过性能仪表盘快速查看关数据库性能情况,通过性能报告查看 I/O 占用高、慢SQL 等具体情况由此直观地分析查询执行计划进行性能调优。此外,MySQL Workbench提供了数据库迁移解决方案,可用于将Microsoft SQL Server,Microsoft Access等的对象和数据迁移到MySQL。开源版和商业版在基础功能上并无差异,具体功能及其差异可以通过下方官网链接查看。
- 是否付费:开源版免费;其他付费(官网提供免费试用)
下载地址:https://www.mysql.com/products/workbench/features.html
相关操作资料:Windows 安装 MySQL Workbench 操作教程MacOS 安装 MySQL Workbench 操作教程Ubuntu 20.04 上 MySQL Workbench 安装和使用图文详解MySQL Workbench常用快捷键
HeidiSQL 是一款开源的轻量级 MySQL 数据库图形化管理工具。支持浏览数据库、管理表、浏览和编辑记录、管理用户权限等功能。支持访问 MySQL、MariaDB 和 SQL Server等数据库,支持 Windows、Linux 系统。
- 主要功能:HeidiSQL提供了一个用于在数据库浏览之间切换 SQL 查询和标签带有语法突出显示的简单易用的界面。允许浏览用户的数据库、管理表、浏览和编辑记录、管理用户权限等。此外,可以从文本文件导入数据、运行SQL查询,在两个数据库之间同步表以及导出选择的表到其它数据库或者 SQL 脚本当中。
- 是否付费:免费
下载地址:https://www.heidisql.com/
相关操作资料:HeidiSQL 软件安装教程
Percona Toolkit 是 Percona 公司开发的开源的、用于管理 MySQL 的高级命令行工具集,由 Perl 语言编写而成,包含在线更改数据表结构、校验主从数据、检查数据库状态以及分析慢查询等功能。支持 MySQL、MariaDB、MongoDB 和 PostgreSQL 数据库。
- 主要功能:包含pt-align、pt-archiver、pt-config-diff、pt-deadlock-logger、pt-diskstats、pt-find、pt-slave-delay等三十余种命令行工具,下载安装后分别具有可用来执行各种通过手工执行非常复杂和麻烦的 MySQL 和系统任务,如检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL、监控MySQL状态、监控从库进程状态以及慢SQL查询等。工具与功能较多,可通过下方官网查看特征及使用方式。
- 是否付费:免费
下载地址:https://www.percona.com/software/database-tools/percona-toolkit
相关操作资料:Percona Toolkit 官方手册(中文版)Percona Toolkit 使用手册(总结版)Percona Toolkit 下载安装及常用工具演示
pgAdmin 是 PostgreSQ 官方开源的一款设计、维护和管理 PostgreSQL 数据库的客户端管理工具,提供强大的图形界面,允许连接到特定的数据库,创建表和运行各种从简单到复杂的SQL语句,支持Linux、Unix、macOS和Windows等操作系统。
- 主要功能:支持桌面应用模式、服务器模式和容器部署模式等多种部署方式,无论运行时环境如何,该软件都具有桌面应用程序的外观和感觉,并具有现代化的用户界面元素、多用户/Web 部署选项、仪表板等。具有简单查询工具,支持语法高亮和可视化的查询计划显示,具备由过程语言调试器等工具。通过 pgAdmin 可以创建、查看以及编辑所有常用的 PostgreSQL 对象,包含聚合函数、索引、物化视图和角色、表空间等,并且具有管理自动清理(Auto-vacuum)、备份还原以及统计分析等功能。
- 是否付费:免费
下载地址:https://www.pgadmin.org/download/
相关操作资料:pgAdmin 简介及下载安装步骤pgAdmin4界面如何设置为中文显示
SQLite Expert是 SQLite 数据库可视化管理工具。拥有一个可视化SQL查询生成器、一个带有语法突出显示和代码完成功能的SQL编辑器以及导入导出功能等,允许用户在 SQLite 服务器上执行创建、编辑、复制、提取等操作。具有个人版(Personal)和专业版(Professional)两种版本。
- 主要功能:可以通过 SQL 查询生成器构建复杂的 SQL 查询,格式化的 SQL 查询文本布局,同时拥有语法高亮和代码完成功能;此外也支持对表列、索引、外键、触发器等的重构而不丢失数据;另外也可以完成从 ADO 数据源、CSV 文件、SQL 脚本或 SQLite 导入数据,以及将数据导出到 CSV 文件、SQL 脚本、Excel 或 SQLite 等。
- 是否付费:个人版免费;专业版付费(官网提供免费试用)
下载地址:https://sqliteexpert.com/
SQL Server Management Studio (SSMS) 是 SQL Server 发行的一种数据库管理集成环境,用于管理从 SQL Server 到 Azure SQL 数据库的任何 SQL 基础结构。提供用于配置、监视和管理 SQL Server 和数据库实例的工具。
- 主要功能:SSMS 在一个综合实用工具中汇集了许多图形工具和丰富的脚本编辑器,为各种技能水平的开发者和数据库管理员提供对 SQL Server 的访问权限。使用 SSMS 可以部署、监视和升级应用程序使用的数据层组件,以及生成查询和脚本。其中,其所包含的可视化设计工具可以用来生成查询、表和关系图数据库;“模板资源管理器”可以生成和管理用于加快查询和脚本开发速度的样板文本文件;使用语言编辑器交互式生成和调试查询和脚本。
- 是否付费:免费
下载地址:https://learn.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms-19?source=recommendations&view=sql-server-ver16
相关操作资料:SSMS 非常有用的一些功能及演示使用SQL Server Management Studio 工具批量生成数据表的表结构SQL Server Management Studio 添加性能仪表盘
最后,给大家推荐咱们墨天轮的几个在线运维工具,其中巡检和AWR分析、在线实训平台深受大家好评,在这里为大家展示一下:
- 数据库在线实训平台(可一键连接Linux WEB终端,现已支持Oracle、MySQL、Redis、PostgreSQL、openGauss、MogDB)
- Oracle 巡检(针对用户上传数据输出详细报告)
- AWR分析(支持Oracle 11.2.0.3及12.1、12.2版本)
- SQL格式化(能够格式化绝大多数SQL语句,其中包括AWR中的SQL、不规范的SQL、手写的SQL等。)
- SQL审核(通过内置的规则,在不连数据库的情况下,静态审核SELECT、UPDATE、DELETE语句,指定用户规范编写SQL。)
- OraC函数(可查询Oracle C 函数的详细描述。)
- 新工具– SQL RUN(2022年11月新上线的在线SQL运行平台,可支持从官方提供的脚本库选择脚本或自己输入SQL进行在线运行,另外用户也可以将自己上传的脚本共享到脚本库。)
本文就为大家整理到这啦~欢迎更多朋友推荐分享您觉得好用的工具,让我们一起合理利用工具、提高工作效率。
天天鼓捣数据,你知道数据库长啥样吗?
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。
在家里,找一个东西,经常找了几个小时找不到,最终放弃。
在宜家,找任何东西,基本都可以靠编号自助搞定。
是什么导致了这种区别?
很好理解,宜家的所有东西都在一张表上登记过,然后在这张表里面填上了物品即将被放置的地址编号,最终这件物品才被工作人员最终放置到那个地址编号所对应的货架上,便于寻址(计算机中的寻址就是“找”的意思,不一下,半夜写文章还真有点儿困)。在表上填写若干件物品的名称和相应的地址,有需要的时候再把它找出来,有的时候要进行统计每种物品的库存数量,其实就是一个典型的数据库的应用场景,只不过我举的例子好像是一个纯人工手工的操作,用脚后跟想想,21世纪的今天,肯定也是由电脑完成的哦。
数据库的英文叫做DB(DataBase),数据仓库的意思,就是存储数据的仓库呗,跟宜家存储是真正的物品没有什么不同,一个是在硬盘上,一个是在真正的三维空间中而已。
数据库中有多个表(最少要有一张表,空的数据库什么也表示不了哦,表的英文叫table),表中真正存储的才是数据记录,一张表简单理解成excel的一张二维表格,你就真正理解数据库了,哈哈,如下表所示,表仍然以行列描述其结构,列id,name,address分别描述了物品的编号,名称以及地址,明眼人应该看清楚了,每一列就是一个物品的一个属性,也就是这个物品的一个特点。每一行代表了一条记录(record),这条记录有三个列(特点)。
这张表格如此清晰,我上面这张图也是从excel截取出来的,那为啥不用excel直接管理数据啊?主要是因为数据库的存取效率较excel更高,好多系统是没有用户界面的,你也用不了excel,最重要的是全世界的数据库都支持一种叫做SQL语言的东西来进行“增删改查”操作,数据库是有事务系统的(一系列步骤的一步出错了,全部回滚到最初状态),数据库是支持命令操作的,而不是简简单单的鼠标操作,这就更减少了人为出错,数据库是支持索引的,数据库的查询效率更高等等等等,后面省略一万条原因。
作为一名产品或设计人员,你只需要把数据库简单理解为,数据库是一个大文件,这个大文件当中有若干个excel表格,每张表格里面存储了若干条记录就。
以宜家举例,宜家的后台一定是个大数据库,这个数据库里面至少有两张表,第一张表记录了所有的员工信息,包括姓名,年龄,手机,家庭住址,银行卡帐号等等。第二张表记录了所有商品的信息,包括商品编号,价格,库存,货架位置等等。
你的新浪微博的用户名和密码,是存储在新浪的后台数据库中的一个表当中的。
你的QQ号码,也是存储在腾讯的服务器中的某一个数据库里面的。
你的京东购物车的物品列表,也是存储在京东的一个数据库当中的。
数据库的操作一般有“增”“删”“改”“查”四种操作,都是借助于SQL语句完成的,SQL读作【se一声】【kou一声】,我们写程序的时候,一般用C语言,C++或者Java等,但是操作数据库的话,全世界的程序员都是统一的,都是用SQL语句来操作数据库,我交你写一句最简单的SQL语句,剩下的就靠自学了,哈哈。Select * From table1 where name=“桌子”,这个SQL语句的意思是,查询出table1这张表中所有名字为“桌子”的记录。其实一个牛逼的程序员可以用一条非常漂亮的SQL语句来解决许多复杂问题。
数据库的知识概念很多,我挑几个重要的简单介绍下:
- 索引,数据库经常有上亿条记录,查询会很慢很慢的,数据库会提供一个功能,像字典一样编制一个”索引“,就是新华字典的前几页一样,靠拼音或偏旁来查询的功能,这个就是索引,这个经常能大幅度提高查询速度。
- 事务,数据库提供了一种机制,就是一件事,必须做完,如果中间出了差错,他会清理掉一切痕迹,回到最初状态,这对于保持数据的一致性和完整性有功不可没的作用。
- 联合查询,经常一张表格解决不了你的问题,比如有两张表,一张表是员工基本信息,另一张表是工资表,这个时候,要查询某某员工的工资,就要两张表一起来“联合查询”
最后简单介绍下,一个应用程序怎么使用数据库呢?第一步,首先建立和数据库的连接,第二步,利用这个连接,来进行数据库的建表,删表,以及对表的增删改查操作,第三部,关闭数据库连接。最后一步是最容易犯错误的,不关闭数据库连接,经常会产生内存泄漏,以及各种异常。
说了很多废话,其实数据库的直观表现就可以看成一个excel表格。
PS:如果你想跟我交流,对公众号像跟朋友那样聊微信回复就可以了,亲,不能保证每一条都回,但是每一条肯定都会认真看。如果觉得我每天的分享有价值,你能帮我分享给你周围的同事和朋友,想必那是极好的~~~
给产品经理讲技术,微信公众号(pm_teacher),人人都是产品经理专栏作家。资深程序猿,专注客户端开发若干年,对前端、后台技术略懂,热衷于对新的科技领域的探索。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。