SQL优化小讲堂(六)——善待数据库从建表开始

简介: 建表相信小伙伴都会,鼠标点击右键建表,输入需要的列和类型,给表命名保存即可。但是你有想过不规范的建表,对数据库会是一种什么样的情况?


1.为什么要规范建表


规范建表有助于厘清表与表之间的关系,列与列之间的联系,可以很好的理解当前库的具体作用。

上面的只是最基本的,深层次的原因是可以有效提高表与表进行关联或者单独查询时候的效率。

一般复杂的逻辑由于表设计的不合理,在进行表关联时候需要关联很多张表,每进行一次关联,数据库就需要消耗一定的时间去寻找匹配项。关联的越多,花的时间就越久。


2.如何规范建表

A.按主题对表进行划分

例如学生主题相关的,在建表的时候可以采用以下方式创建

CREATE TABLE STU.Students

(......)

其中STU就代表一个主题

B.表和列的命名的规范

表名在创建时需要做到见名知意,词汇之间用_隔开,使用驼峰式(首字母大写),且长度不宜超过30个长度。

例如要建立一个学生缴费表,可以采用如下方式:

CREATE TABLE STU.Students_Fee

(......)

这里的表名Students_Fee由词语学生(Students)和费用(Fee)组成,用_进行连接,单词的首字母都进行了大写,由12个字符组成。

C.字段类型统一定义

  • 对于字符串类型,如果长度超过20个长度,一般定义为VARCHAR类型。低于20个的可以考虑使用CHAR类型,可以有效提高查询效率。
  • 中文字段一般用VARCHAR类型,长度视情况而定。
  • 涉及金额以及精度较高的使用DECIMAL(m,n)类型,其中m和n根据实际情况具体来定。不建议使用DOUBLE和FLOAT类型
  • 判断类的可以直接使用INT类型来代替,如0代表否,1代表是
  • 整形定义中不添加长度,比如使用INT,而不是INT(4)
  • 尽可能不要使用IMAGE和TEXT类型
  • 存储时间(精确到秒)建议使用TIMESTAMP类型,因为TIMESTAMP使用4字节,DATETIME使用8个字节
  • 建议字段定义为NOT NULL,有NULL存在的列,可能会让索引失效。

D.尽量满足第三范式

其实第三范式的作用就是为了让表里的字段尽可能少存储几列,减少冗余。但是在实际开发生产中,很多人基本就是看心情建表。有的表可以冗余几列结果没有冗余,有的表需要拆分成几个表却将所有字段放在一个大表中,这是建表大忌。

在不知道如何建表更优的情况下,建议列数不要超过20列。最好能先画一个E-R草图,磨刀不误砍柴工,明确了逻辑之后建表其实很快且高效的。

相关文章
|
18天前
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
10天前
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。
|
10天前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
1月前
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
51 16
|
1月前
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
6天前
|
SQL IDE 关系型数据库
JetBrains DataGrip 2025.1 发布 - 数据库和 SQL 跨平台 IDE
JetBrains DataGrip 2025.1 (macOS, Linux, Windows) - 数据库和 SQL 跨平台 IDE
52 0
|
SQL Oracle 关系型数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
407 0
|
6月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
481 3
|
10月前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
6月前
|
SQL 开发框架 .NET
ASP连接SQL数据库:从基础到实践
随着互联网技术的快速发展,数据库与应用程序之间的连接成为了软件开发中的一项关键技术。ASP(ActiveServerPages)是一种在服务器端执行的脚本环境,它能够生成动态的网页内容。而SQL数据库则是一种关系型数据库管理系统,广泛应用于各类网站和应用程序的数据存储和管理。本文将详细介绍如何使用A
156 3

热门文章

最新文章

下一篇
oss创建bucket