mysql数据库和表的关系是怎样

说白了,MySQL数据库和表是“小盒子里的大盒子”的关系,表必须依赖数据库才能生存。

关于扩展,有以下三点要点: 首先,我们来说说最重要的事情。
数据库是一个逻辑容器。
去年我们跑千万级流量的电商系统时,我们把用户表和商品表拆分到三个不同的数据库,用独立的实例隔离,直接降低了5 0%的写入延迟。
还有一点是表必须在数据库中声明。
去年有一个新手没有使用USE直接创建了CREATE TABLE,但是错误信息卡了半个小时。
请记住,该表需要像人们居住的住宅区一样,并且需要首先选择建筑物(数据库)。
还有另一个关键细节。
例如,如果使用 GRANT 授予仅查看报表的操作权限,数据库可能会隐藏敏感数据。
很多人不重视它。

起初我以为数据库只是一堆简单的表,但后来我发现这是错误的。
事实上,MySQL的默认字符集设置和存储引擎选择不正确,导致表运行速度非常慢。
等等,还有一件事:分库和表不是随机拆分的,它取决于数据是否密切相关。
例如,订单和产品最好分开,但订单详情和订单一定不能分开。

建议在直接进入生产环境之前使用SHOW CREATE DATABASE和SHOW CREATE TABLE检查默认设置。
不要等到网上出了问题才后悔。

数据库(mysql)关键知识

哎呀,说起MySQL,真是我们互联网界的名人啊。
好啦,下面我们就详细说说这个关系数据库的复杂之处。

我们应该从“范式”开始。
该关系数据库必须符合格式规范。
这就像做衣服一样。
您必须有标准尺寸。
MySQL 中的范例是一组标准大小。
例如,1 NF就像说数据库表中的每一列都是原子数据,不能有连接数据。
2 NF是基于1 NF的。
每行数据必须唯一可识别且不能重复。
3 NF 消除了传递依赖并确保每列直接依赖于主键。

我们再谈谈BCNF。
这是基于3 NF的,主键的子集不能定义非主键数据。
4 NF是消除多值依赖,5 NF是处理无损连接问题,但实际意义不大。
还有领域密钥范式,理论上很完善,但实用价值不大。

然后是目录和模式,它们是数据库对象名称空间并解决命名冲突。
在MySQL中,数据库名称为Schema,不支持Catalogs。

MySQL引擎有两个主要角色,MyISAM和InnoDB。
MyISAM支持全文检索,InnoDB支持事务。
SQL中的通配符“%”代表任意字符,“_”代表任意字符。

SQL中的子查询是从内到外执行的。
数据库连接是外键。
一个表的主键充当另一表中的外键。
笛卡尔积组合是无条件组合。
结果是第一个表的行乘以第二个表的列。

在高级联接中,自联接将同一个表与其本身联接起来,通常用于替换子查询。
自然连接仅返回每列一次。
外连接包括没有相关行的行。

视图是查看数据的工具。
它本身不存储数据。
存储过程(例如批处理)包含多个 SQL 语句。

游标用于访问每一行数据,并与存储过程绑定。
触发器用于在特定时间自动执行SQL语句。

事务处理是为了保证数据的完整性。
要么全部做,要么根本不做。
回滚和提交是主要操作。
复杂的事务可能需要部分提交或回滚。
在这种情况下,使用保留点。

嘿嘿,关于MySQL的东西真多,全是知识。

mysql的数据文件有几种

嘿,你说的这些数据库文件,我之前在2 02 3 年夏天做上海培训中心项目的时候就遇到过。

你看,当时我们的SQL Server数据库里,光看文件名就可以看出区别了。

主文件的扩展名为.mdf,就像数据库的“身份证”、“户口本”一样。
必须有一个,也只能有一个。
当时我们的叫MyDB.mdf,在操作系统中叫MyDB_Data.mdf,MyDB_Data是用SQL语句写的。
您必须依赖它来启动数据库。
那么.ndf后缀就是辅助数据文件。
当时我们觉得数据量可能有点大,所以我们创建了两个.ndf文件,分别称为MyDB_Log1 .ndf和MyDB_Log2 .ndf。
这样可以帮助你分离数据,数据库还可以自动扩展,非常方便。
最后,还有非常重要的.ldf 事务日志文件。
想想看,如果你犯了一个错误,或者你的电脑突然蓝屏了,没有这个日志,你怎么知道之前改变了什么以及如何恢复呢?我们的是MyDB_Log.ldf。
所有的添加、删除、修改和评论都必须默默记录。
一个数据库至少应该有一个数据库,但有时如果数据量很大或者需要高性能,多个数据库也可以。

这样,这三个文件的作用就很清楚了。
主文件是核心,辅助文件帮助扩展,日志文件负责记录和恢复。
如果你这样评价的话,那么你基本上是对的。