[转载]数据库基础学习随记
2023-09-27 14:23:44 时间
来源:https://www.liaoxuefeng.com/wiki/1177760294764384
- 不使用任何业务相关的字段作为主键
-
没有必要的情况下,我们尽量不使用联合主键,因为它给关系表带来了复杂度的上升
- 由于外键约束会降低数据库的性能,大部分互联网应用程序为了追求速度,并不设置外键约束,而是仅靠应用程序自身来保证逻辑的正确性。这种情况下,
class_id
仅仅是一个普通的列,只是它起到了外键的作用而已。 - 多对多关系实际上是通过两个一对多关系实现的,即通过一个中间表,关联两个一对多关系,就形成了多对多关系:
- 还有一些应用会把一个大表拆成两个一对一的表,目的是把经常读取和不经常读取的字段分开,以获得更高的性能。例如,把一个大的用户表分拆为用户基本信息表
user_info
和用户详细信息表user_profiles
,大部分时候,只需要查询user_info
表,并不需要查询user_profiles
表,这样就提高了查询速度。 - 索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,这样就大大加快了查询速度。
- 索引的效率取决于索引列的值是否散列,即该列的值如果越互不相同,那么索引效率越高。反过来,如果记录的列存在大量相同的值,例如
gender
列,大约一半的记录值是M
,另一半是F
,因此,对该列创建索引就没有意义。可以对一张表创建多个索引。索引的优点是提高了查询效率,缺点是在插入、更新和删除记录时,需要同时修改索引,因此,索引越多,插入、更新和删除记录的速度就越慢。对于主键,关系数据库会自动对其创建主键索引。使用主键索引的效率是最高的,因为主键会保证绝对唯一。 -
不带
FROM
子句的SELECT
语句有一个有用的用途,就是用来判断当前到数据库的连接是否有效。许多检测工具会执行一条SELECT 1;
来测试数据库连接。 OFFSET
超过了查询的最大数量并不会报错,而是得到一个空的结果集。在MySQL中,
LIMIT 15 OFFSET 30
还可以简写成LIMIT 30, 15
。使用
LIMIT <M> OFFSET <N>
分页时,随着N
越来越大,查询效率也会越来越低。- 聚合查询:SELECT COUNT(*) FROM students;分组聚合:SELECT COUNT(*) num FROM students GROUP BY class_id;
-
-
- 把多条语句作为一个整体进行操作的功能,被称为数据库事务。数据库事务可以确保该事务范围内的所有操作都可以全部成功或者全部失败。如果事务失败,那么效果就和没有执行这些SQL一样,不会对数据库数据有任何改动。
- 脏读(Dirty read)
- 幻读:
相关文章
- SQL Server 2008 数据库同步的两种方式 (发布、订阅)
- EF操作数据库的步骤和一些简单操作语句
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- 一个小型数据库的核心组件
- PHP大批量插入数据库的3种方法和速度对比
- 通用数据库管理工具DBeaver
- MySQL数据库中随机获取一条或多条记录
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——第2章 SQL Server和PowerShell基础任务2.1 介绍
- 一、数据库层搭建
- 【python web开发知识点整理4】- 数据库基础
- 【Node.js】学习Node.js简介、读取本地文件、连接数据库和MySQL常用查询命令(内附详细步骤)——学习Node.js
- python使用flask实现前后端分离&通过前端修改数据库数据【全栈开发基础】
- Java_jdbc 基础笔记之十五 数据库连接(取得数据库自动生成的主键)
- Java_jdbc 基础笔记之十三 数据库连接(DAO)
- 数据库学习---SQL基础(二)
- MySQL数据库基础:安装+登入+SQL操作语句+数据库授权、备份、恢复+其他操作
- mongodb基础系列——数据库查询数据返回前台JSP(一)
- MySQL数据库基础学习
- 运维脚本--快速了解数据库信息
- 零基础入门MySQL数据库(全)
- 【数据库】MySQL概念知识语法-基础(DDL/DML),真的很详细,一篇文章你就会了
- 数据库导出导入
- 数据库连接池问题 Max Pool Size