数据库备份、权限管理、数据库设计

一、数据库备份

1、为什么要备份

①保证重要的数据不丢失

②数据转移

2、数据库备份的方式

①直接拷贝物理文件data

②在可视化工具中手动导出

③使用命令行导出:mysqldump -h 主机 -u 用户名 -p 密码 数据库 > D:\a.sql

导出:mysqldump -u用户名 -p密码 -A --master-data=2 --single-transaction>/tmp/masterdb.sql
导入:mysql -u用户名 -p密码 </tmp/masterdb.sql

 

二、权限管理

①创建普通用户,可以远程连接:create user 'test'@'%' identified by '123456';

②授权所有库,只能查询操作:grant select on *.* to test@'%'identified by '123456';

这是授予所有权限:grant all privileges on *.* to test@'%'identified by '123456';

③刷新权限:flush privileges;

④查询用户:select user,host from mysql.user;

 

三、数据库设计

1、为什么要设计

当数据库比较复杂的时候,就需要设计数据库

糟糕的数据库设计:数据冗余、浪费空间

良好的数据库设计:节省内存空间、保证数据库完整性、方便开发

2、软件开发中,关于数据库设计

分析需求,分析业务和需要处理数据库的需求

概要设计:设计关系图

3、设计数据库的步骤

①收集信息,分析需求

  用户表:用户登录注册,用户的个人信息,写博客,创建分类

  分类表:文章分类,谁创建的

  文章表:文章的信息

  评论表:文章的评论

  友链表:友链信息

  自定义表:系统信息,某个关键的字或者一些主字段

②标识实体(把需求落到每个字段)

③标识实体之间的关系

4、三大范式

https://www.cnblogs.com/wsg25/p/9615100.html

为什么需要数据规范化:信息重复、更新异常、插入异常(无法正常显示信息)、删除异常(丢失有效信息)

①第一范式

原子性:保证每一列不可分

②第二范式

前提:满足第一范式

每张表只描述一件事情

③第三范式

前提:满足第一范式、第二范式

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关

5、规范性和性能问题

关联查询的表不得超过三张表:

①考虑商业化的需求和目标(成本、用户体验),数据库的性能更加重要

②在规范性能问题的时候,需要适当的考虑一下规范性

③故意给某些表增加一些冗余的字段(从多表查询中变为单表查询)

④故意增加一些计算列(ongoing大数据量降低为小数据量的查询:索引)

 

posted @   困了就睡觉觉  Views(101)  Comments(0Edit  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示