精华内容
下载资源
问答
  • Mysql 数据库表设计 应该注意什么

    千次阅读 2020-07-13 17:00:58
    良好的逻辑设计和物理设计是高性能的基石,在进行设计的时候应该根据系统将要... 适用小而简单的合适数据类型,除非真实数据模型中有确切的需要,否则应该尽可能地避免使用NULL值(详细见 为什么Mysql 尽量使用NULL值?

    良好的逻辑设计和物理设计是高性能的基石,在进行设计的时候应该根据系统将要执行的查询语句来设计表,这往往需要权衡各种因素,那么这些因素有哪些呢?我们应该重点关注什么呢?这常常苦恼着我们,良好的设计原则是普遍适用的,下面文章将介绍一些常规的思考维度提供参考

    • 尽量避免过度设计,例如会导致极其复杂查询的表设计,或者有很多列的表设计(很多的意思是介于有点多和非常多之间)
    • 适用小而简单的合适数据类型,除非真实数据模型中有确切的需要,否则应该尽可能地避免使用NULL值(详细见 为什么Mysql 尽量使用NULL值?)。
    • 尽量适用相同的数据类型存储相似或者相关的值,尤其是要在关联条件中适用的列(不然会涉及到类型转换,消耗性能)
    • 注意可变长字符串,其在临时表和排序时可能导致悲观的按最大长度分配内存。
    • 尽量适用整型定义标识列。
    • 避免适用Mysql 已经遗弃的特性,例如指定浮点数的精度,或者整数的显示宽度。
    • 小心适用ENUM和SET。虽然他们用起来比较方便,但是不要滥用,否则有时候会变成陷阱。最好避免适用BIT。
    • 范式是好的,但是反范式(大多数情况下意味着重复数据)有时也是必须的,并且带来好处(查询获取数据等更优秀,但是同样带来维护成本复杂度成本等的提升)。

    附加:范式和反范式的优缺点?如果考量?

    范式是什么?范式是数据库设计的一些规则,反范式就是不遵循那些规则。这里像数据库范式中的字段冗余就是反范式,也是我们工作中常用的(详细的可以查找相关的文件进行了解)。

    范式化好处

    • 范式化的更新操作通常比反范式化更快
    • 当数据较好地范式化时,就只有很少或者没有重复数据,所以只需要修改更少的数据。
    • 范式化的表通常更小,可以更好地放在内存里,所以执行操作更快。
    • 很少有多余的数据意味着检索列表数据时更少需要DISTINCT或者GROUP BY语句。

    范式坏处

    • 范式化设计查询常常需要关联表,在一些复杂的查询中,关联的代价不仅昂贵,也可能使一些索引失效。

    反范式好处

    • 反范式所有数据都在一张表,可以很好地避免关联。
    • 不需要关联表,则对大部分查询最差的情况—–即使表没有使用索引—是全表扫描。当数据比内存大时这可能比关联要快的多。因为这样避免了随机I/O(全表扫描基本上是顺序I/O,但也不是100%的,跟引擎的实现有关)。
    • 单独的表也能适用更有效的索引策略。
    • 能更有效的执行这个查询

    反范式坏处

    • 表中冗余了数据,那么就需要更多的空间,典型的空间换时间策略
    • 多份重复数据,那么在进行数据一致性维护上需要更多的操作,成本提升

    因此在设计表的时候,注意空间和时间 你更需要哪一个。

     

    展开全文
  • 创建数据库时,需要注意的事项

    千次阅读 2016-05-27 11:40:10
    创建数据库时,需要注意字段不要使用数据库的关键字。 比如enable、name之类的, 因为项目中遇到过使用hibernate的merge方法时,如果enable中的值为空就会出现一直卡住的现象,导致 数据一直未保存到数据库中。占...

    创建数据库时,需要注意字段不要使用数据库的关键字。

    比如enable、name之类的,

    因为项目中遇到过使用hibernate的merge方法时,如果enable中的值为空就会出现一直卡住的现象,导致

    数据一直未保存到数据库中。占着数据库链接一直不释放,直到数据库链接超时,如果还未到超时就已经达到数据库链接最大值,那系统就挂掉了。

    所以设计数据库时,一定要谨慎再谨慎。

    至于为什么关键字为空时,使用merge方法会出现一直卡住的现象,后续还要继续研究下。

     

    展开全文
  • 数据库表创建注意事项

    千次阅读 2016-08-07 00:04:38
    一、 字段名及字段配制合理性 1、 剔除关系不密切的字段 2、 字段命名要有规则及相对应的含义(不要一部分英文,一部分拼音,还有类似a.b.c这样不明含义的字段) 3、 字段命名尽量不要使用缩写(大多数缩写都不...

    一、      字段名及字段配制合理性

    1、        剔除关系不密切的字段

    2、        字段命名要有规则及相对应的含义(不要一部分英文,一部分拼音,还有类似a.b.c这样不明含义的字段)

    3、        字段命名尽量不要使用缩写(大多数缩写都不能明确字段含义)

    4、        字段不要大小写混用(想要具有可读性,多个英文单词可使用下划线形式连接)

    5、        字段名不要使用保留字或者关键字

    6、        保持字段名和类型的一致性

    7、        慎重选择数字类型

    8、        给文本字段留足余量

    二、      系统特殊字段处理及建成后建议

    1、        添加删除标记(例如操作人、删除时间)

    2、        建立版本机制

    三、      表结构合理性配置

    1、        多型字段的处理

    就是表中是否存在字段能够分解成更小独立的几部分(例如:人可以分为男人和女人)

    2、        多值字段的处理

    可以将表分为三张表

    这样使得检索和排序更加有调理,且保证数据的完整性!

    四、      其它建议

    1、        对于大数据字段,独立表进行存储,以便影响性能(例如:简介字段)

    2、        使用varchar类型代替char,因为varchar会动态分配长度,char指定长度是固定的。

    3、        给表创建主键,对于没有主键的表,在查询和索引定义上有一定的影响。

    4、        避免表字段运行为null,建议设置默认值(例如:int类型设置默认值为0)在索引查询上,效率立显!

    5、        建立索引,最好建立在唯一和非空的字段上,建立太多的索引对后期插入、更新都存在一定的影响(考虑实际情况来创建)。

    展开全文
  • 几个你需注意数据库设计原则(新手必看)

    万次阅读 多人点赞 2017-05-19 17:56:50
    在您读之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的 11 点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解。我个人认为它们对我的数据库设计提供了很大的帮助。实属...

    原网址:http://www.cnn6.net/html/database/2017519/201828.html?ref=myread
    在您读之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的 11 点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解。我个人认为它们对我的数据库设计提供了很大的帮助。实属一家之言,欢迎拍砖 : )

    我之所以写下这篇这么完整的文章是因为,很多开发者一参与到数据库设计,就会很自然地把 “三范式” 当作银弹一样来使用。他们往往认为遵循这个规范就是数据库设计的唯一标准。由于这种心态,他们往往尽管一路碰壁也会坚持把项目做下去。

    如果你对 “三范式” 不清楚,请点击这里(FQ)一步一步的了解什么是“三范式”。

    大家都说标准规范是重要的指导方针并且也这么做着,但是把它当作石头上的一块标记来记着(死记硬背)还是会带来麻烦的。以下 11 点是我在数据库设计时最优先考虑的规则。
    这里写图片描述
    规则 1:弄清楚将要开发的应用程序是什么性质的(OLTP 还是 OPAP)?

    当你要开始设计一个数据库的时候,你应该首先要分析出你为之设计的应用程序是什么类型的,它是 “事务处理型”(Transactional) 的还是 “分析型” (Analytical)的?你会发现许多开发人员采用标准化做法去设计数据库,而不考虑目标程序是什么类型的,这样做出来的程序很快就会陷入性能、客户定制化的问题当中。正如前面所说的,这里有两种应用程序类型, “基于事务处理” 和 “基于分析”,下面让我们来了解一下这两种类型究竟说的是什么意思。

    事务处理型:这种类型的应用程序,你的最终用户更关注数据的增查改删(CRUD,Creating/Reading/Updating/Deleting)。这种类型更加官方的叫法是 “OLTP” 。

    分析型:这种类型的应用程序,你的最终用户更关注数据分析、报表、趋势预测等等功能。这一类的数据库的 “插入” 和 “更新” 操作相对来说是比较少的。它们主要的目的是更加快速地查询、分析数据。这种类型更加官方的叫法是 “OLAP” 。
    这里写图片描述
    那么换句话说,如果你认为插入、更新、删除数据这些操作在你的程序中更为突出的话,那就设计一个规范化的表否则的话就去创建一个扁平的、不规范化的数据库结构。

    以下这个简单的图表显示了像左边 Names 和 Address 这样的简单规范化的表,怎么通过应用不规范化结构来创建一个扁平的表结构。
    这里写图片描述
    规则 2:将你的数据按照逻辑意义分成不同的块,让事情做起来更简单

    这个规则其实就是 “三范式” 中的第一范式。违反这条规则的一个标志就是,你的查询使用了很多字符串解析函数

    例如 substring、charindex 等等。若真如此,那就需要应用这条规则了。

    比如你看到的下面图片上有一个有学生名字的表,如果你想要查询学生名字中包含“Koirala”,但不包含“Harisingh”的记录,你可以想象一下你将会得到什么样的结果。

    所以更好的做法是将这个字段拆分为更深层次的逻辑分块,以便我们的表数据写起来更干净,以及优化查询。
    这里写图片描述
    规则 3:不要过度使用 “规则 2”

    开发者都是一群很可爱的生物。如果你告诉他们这是一条解决问题的正路,他们就会一直这么做下去,做到过了头导致了一些不必要的后果。这也可以应用于我们刚刚在前面提到的规则2。当你考虑字段分解时,先暂停一下,并且问问你自己是否真的需要这么做。正如所说的,分解应该是要符合逻辑的。

    例如,你可以看到电话号码这个字段,你很少会把电话号码的 ISD 代码单独分开来操作(除非你的应用程序要求这么做)。所以一个很明智的决定就是让它保持原样,否则这会带来更多的问题。
    这里写图片描述
    规则 4:把重复、不统一的数据当成你最大的敌人来对待

    集中那些重复的数据然后重构它们。我个人更加担心的是这些重复数据带来的混乱而不是它们占用了多少磁盘空间。

    例如下面这个图表,你可以看到 “5th Standard” 和 “Fifth standard” 是一样的意思,它们是重复数据。现在你可能会说是由于那些录入者录入了这些重复的数据或者是差劲的验证程序没有拦住,让这些重复的数据进入到了你的系统。现在,如果你想导出一份将原本在用户眼里十分困惑的数据显示为不同实体数据的报告,该怎么做呢?
    这里写图片描述
    解决方法之一是将这些数据完整地移到另外一个主表,然后通过外键引用过来。在下面这个图表中你可以看到我们是如何创建一个名为 “Standards”(课程级别) 的主表,然后同样地使用简单的外键连接过去。
    这里写图片描述
    规则 5:当心被分隔符分割的数据,它们违反了“字段不可再分”

    前面的规则 2 即“第一范式”说的是避免 “重复组” 。下面这个图表作为其中的一个例子解释了 “重复组”是什么样子的。如果你仔细的观察 syllabus(课程) 这个字段,会发现在这一个字段里实在是填充了太多的数据了。像这些字段就被称为 “重复组” 了。如果我们又得必须使用这些数据,那么这些查询将会十分复杂并且我也怀疑这些查询会有性能问题。
    这里写图片描述
    这些被塞满了分隔符的数据列需要特别注意,并且一个较好的办法是将这些字段移到另外一个表中,使用外键连接过去,同样地以便于更好的管理。
    这里写图片描述
    那么,让我们现在就应用规则2(第一范式) “避免重复组” 吧。你可以看到上面这个图表,我创建了一个单独的 syllabus(课程) 表,然后使用 “多对多” 关系将它与 subject(科目) 表关联起来。

    通过这个方法,主表(student 表)的 syllabus(课程) 字段就不再有重复数据和分隔符了。

    规则 6:当心那些仅仅部分依赖主键的列
    这里写图片描述
    留心注意那些仅仅部分依赖主键的列。例如上面这个图表,我们可以看到这个表的主键是 Roll No.+Standard。现在请仔细观察 syllabus 字段,可以看到 syllabus(课程) 字段仅仅关联(依赖) Standard(课程级别) 字段而不是直接地关联(依赖)某个学生(Roll No. 字段)。

    Syllabus(课程) 字段关联的是学生正在学习的哪个课程级别(Standard 字段)而不是直接关联到学生本身。那如果明天我们要更新教学大纲(课程)的话还要痛苦地为每个同学也修改一下,这明显是不符合逻辑的(不正常的做法)。更有意义的做法是将这些字段从这个表移到另外一个表,然后将它们与 Standard(课程级别)表关联起来。

    你可以看到我们是如何移动 syllabus(课程)字段并且同样地附上 Standard 表。

    这条规则只不过是 “三范式” 里的 “第二范式”:“所有字段都必须完整地依赖主键而不是部分依赖”。

    规则 7:仔细地选择派生列
    这里写图片描述
    留心注意那些仅仅部分依赖主键的列。例如上面这个图表,我们可以看到这个表的主键是 Roll No.+Standard。现在请仔细观察 syllabus 字段,可以看到 syllabus(课程) 字段仅仅关联(依赖) Standard(课程级别) 字段而不是直接地关联(依赖)某个学生(Roll No. 字段)。

    Syllabus(课程) 字段关联的是学生正在学习的哪个课程级别(Standard 字段)而不是直接关联到学生本身。那如果明天我们要更新教学大纲(课程)的话还要痛苦地为每个同学也修改一下,这明显是不符合逻辑的(不正常的做法)。更有意义的做法是将这些字段从这个表移到另外一个表,然后将它们与 Standard(课程级别)表关联起来。

    你可以看到我们是如何移动 syllabus(课程)字段并且同样地附上 Standard 表。

    这条规则只不过是 “三范式” 里的 “第二范式”:“所有字段都必须完整地依赖主键而不是部分依赖”。

    如果你正在开发一个 OLTP 型的应用程序,那强制不去使用派生字段会是一个很好的思路,除非有迫切的性能要求,比如经常需要求和、计算的 OLAP 程序,为了性能,这些派生字段就有必要存在了。

    通过上面的这个图表,你可以看到 Average 字段是如何依赖 Marks 和 Subjects 字段的。这也是冗余的一种形式。因此对于这样的由其他字段得到的字段,需要思考一下它们是否真的有必要存在。

    这个规则也被称为 “三范式” 里的第三条:“不应该有依赖于非主键的列” 。 我的个人看法是不要盲目地运用这条规则,应该要看实际情况,冗余数据并不总是坏的。如果冗余数据是计算出来的,看看实际情况再来决定是否应用这第三范式。

    规则 8:如果性能是关键,不要固执地去避免冗余
    这里写图片描述
    不要把 “避免冗余” 当作是一条绝对的规则去遵循。如果对性能有迫切的需求,考虑一下打破常规。常规情况下你需要做多个表的连接操作,而在非常规的情况下这样的多表连接是会大大地降低性能的。

    规则 9:多维数据是各种不同数据的聚合

    OLAP 项目主要是解决多维数据问题。比如你可以看看下面这个图表,你会想拿到每个国家、每个顾客、每段时期的销售额情况。简单的说你正在看的销售额数据包含了三个维度的交叉。
    这里写图片描述
    为这种情况做一个实际的设计是一个更好的办法。简单的说,你可以创建一个简单的主要销售表,它包含了销售额字段,通过外键将其他所有不同维度的表连接起来。
    这里写图片描述
    规则 10:将那些具有“名值表”特点的表统一起来设计

    很多次我都遇到过这种 “名值表” 。 “名值表” 意味着它有一些键,这些键被其他数据关联着。比如下面这个图表,你可以看到我们有 Currency(货币型)和 Country(国家)这两张表。如果你仔细观察你会发现实际上这些表都只有键和值。
    这里写图片描述
    对于这种表,创建一个主要的表,通过一个 Type(类型)字段来区分不同的数据将会更有意义。

    规则 11:无限分级结构的数据,引用自己的主键作为外键

    我们会经常碰到一些无限父子分级结构的数据(树形结构?)。例如考虑一个多级销售方案的情况,一个销售人员之下可以有多个销售人员。注意到都是 “销售人员” 。也就是说数据本身都是一种。但是层级不同。这时候我们可以引用自己的主键作为外键来表达这种层级关系,从而达成目的。
    这里写图片描述
    这篇文章的用意不是叫大家不要遵循范式,而是叫大家不要盲目地遵循范式。根据你的项目性质和需要处理的数据类型来做出正确的选择。
    这里写图片描述

    展开全文
  • 在这里和大家分享一下关于达梦与oracle之间进行数据迁移的注意事项: 达梦数据库与oracle的兼容性是很高的,所以这两类...需要注意的是,空格填充模式参数是初始化参数,只能在初始化实例的时候进行设置,这两个参...
  • 数据库原理》— 数据库系统概论第五版习题解析

    万次阅读 多人点赞 2017-05-29 14:57:48
    数据库系统概论前七章习题解析 第1章绪论 1.试述数据、数据库数据库系统、数据库管理系统的概念。答: (l)数据(Data):描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。...
  • 微信小程序·云开发 云数据库的基本使用

    万次阅读 多人点赞 2018-12-28 17:19:14
    这篇文章就是云数据库使用的一些总结。 刚开始看到这个云数据库的时候,第一感觉就是,这不就是MongoDB吗。 这就简单了,毕竟MongoDB我自己瞎玩的时候用的挺多的,撸起袖子就是干。 1. 创建集合 首先开通微信小...
  • 数据库系统概论(第五版) 王珊 第一章课后习题答案

    千次阅读 多人点赞 2019-12-23 16:18:55
    试述数据、数据库数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。 ( 2 )数据库...
  • 新建数据库,建表需要注意的地方

    千次阅读 2016-07-06 17:00:19
    新建数据库,建表需要注意的地方
  • Eclipse连接MySQL数据库(详细步骤)

    万次阅读 多人点赞 2016-12-27 21:19:28
    本人在写这篇博客的时候也是菜鸟一只,百度“Java连接mysql数据库、eclipse连接数据库”等文章一大堆,可总是报错。 下面的操作是经本人验证,确实可行,包括了jar包导入、用jdbc连接mysql之前,新建数据库,新建...
  • 数据库种类及关系型数据库原理

    千次阅读 2017-09-14 08:02:25
    一、数据库种类及关系型数据库原理1.1数据库种类:按照早期的数据库理论,比较流行的数据库模型有三种: 层次式数据库 网络式数据库 关系型数据库 在当今互联网中,最常用的数据库模型: 关系型数据库 非关系型...
  • 数据库创建索引的注意事项

    千次阅读 2018-08-10 20:49:19
    数据库创建索引的注意事项 出于对作者的尊重和感谢,原文地址为 http://www.studyofnet.com/news/449.html 索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以是否要为...
  • 什么数据库实例(SID),oracle/mysql

    万次阅读 多人点赞 2018-03-18 16:35:11
    什么是oracle? 平常所说的 Oracle 或 Oracle 数据库指的是 Oracle 数据库管理系统. Oracle 数据库管理系统是管理数据库访问的计算机软件(Oracle database manager system). 它由 Oracle 数据库和 Oracle 实例...
  • 什么数据库实例

    万次阅读 多人点赞 2019-05-27 17:18:00
    什么数据库实例 一、通俗解释 首先说说,数据库是做什么? 数据库是用来长久存储数据的,而我们大家都知道内存只能临时存储,磁盘等才能真正存储数据. 那数据库会放那里呢?肯定是存放在磁盘上,其实...
  • 关系型数据库和非关系型数据库的区别

    千次阅读 多人点赞 2019-06-06 23:52:16
    笔者一共用过俩个数据库,一个是MySQL,一个是MongoDB他们俩个就是不同类型的数据库。 MySQL是关系型的数据库 MongoDB是非关系型的数据库 而我们今天就来了解一下关系型数据库与非关系型数据库的区别。 关系型数据库...
  • 四、连接池需要注意的点 1、并发问题 为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即并发问题。 这个问题相对比较好解决,因为各个语言自身提供了对并发管理的支持像java,c#等等,使用synchronized...
  • 1,oracle,自己写程序代码实现,但是数据库表结构的问题,比如: (1)表结构转换问题: oracle字符串类型,里面常用的是varchar2,而mysql里面常用的是varchar,而且varchar(N)这个N指的还是字符个数而不是存储的...
  • mysql为数据库表起别名的注意事项

    万次阅读 2021-07-15 17:39:43
  • 带你发现新大陆!什么是图数据库以及简单入门!

    万次阅读 多人点赞 2018-01-17 21:16:24
    一、关系型数据库的不适性 在众多不同的数据模型里,关系数据模型自20世纪80年代就处于统治地位,而且出现了不少巨头,如Oracle、MySQL,它们也被称为:关系数据库管理系统(RDBMS)。然而,随着关系数据库使用范围...
  • 2. @Transactional注解最好都放在方法前面,不要直接修饰类,必要的方法才是用数据库事务,查询这类操作也加事务会影响数据库操作效率 3. 使用@Transactional修饰的方法,直接被调用,事务才会起作用,如果被间接...
  • 关于GreenDao数据库的使用,所需要注意的坑这段时间公司在做一个项目,里面用到了数据库,我看了一下近段时间比较流行的数据库框架,当然优先选择GreenDao,不过在使用这个数据库的时候真的有许多需要注意的地方,我...
  • 什么要学数据库?

    千次阅读 2020-05-08 13:45:21
    数据库什么?为什么要学数据库?数据库的分类关系型数据库非关系型数据库Newsql为什么学mysql——从使用者角度为什么学mysql——从就业角度Mysql下载安装 数据库系统(database System),是由数据库及其管理软件...
  • 1.删除无任何数据对象的表空间:首先使用PL/SQL界面化工具,或者使用oracle自带的SQL PLUS工具,连接需要删除的表空间的oracle数据局库。确认当前用户是否有删除表空间的权限,如果没有 drop tablespace,请先用更...
  • 数据库设计中应注意的问题

    万次阅读 2014-09-14 20:37:55
    引言数据库设计是信息系统设计的基础,一个好的数据库设计在满足了软件需求之外,还要易维护、易扩充等等要求。当然,对专家们反复强调的数据的一致性、冗余性、访问效率等问题的解决,很大程度上取决于数据库设计者...
  • 数据库中,什么是事务?

    万次阅读 多人点赞 2018-08-04 11:04:39
    什么是事务? 百度百科中解释:指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 简单的说,事务就是并发控制的单位,是用户定义的一个操作序列。 而一个逻辑工作单元要成为事务,就...
  • 作者前言:缓存消耗的是服务器的内存,使用缓存前必须先对应用需要缓存的数据大小进行评估,包括缓存的数据结构、缓存大小、缓存数量、缓存的失效时间,否则会造成资源浪费或者缓存空间不够。 缓存穿透:redis跟...
  • 数据库(表结构)设计技巧及注意事项

    万次阅读 多人点赞 2017-12-01 16:51:39
    当您在决定开发一个数据库...表结构设计是数据库逻辑设计的重要组成部分,直接影响到数据库的性能,所以小编在本文对数据库(表结构)设计技巧及注意事项做一个讲解!  1.表名一般以【模块名称_具体表名】来实现,
  • 数据库索引到底是什么,是怎样工作的?

    万次阅读 多人点赞 2016-05-19 16:37:46
    我们通过一个简单的例子来开始教程,解释为什么我们需要数据库索引。假设我们有一个数据库表 Employee, 这个表有三个字段(列)分别是 Employee_Name、Employee_Age 和Employee_Address。假设表Employee 有上千行...
  • 数据库系统概论第五版 课后习题答案王珊

    万次阅读 多人点赞 2020-01-11 14:15:14
    试述数据、数据库数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,704,706
精华内容 681,882
关键字:

数据库需要注意什么