• 暂时停更一段时间!
  • 近期网站将陆续进行前端页面改造!
  • 招募网站编辑,联系站长!

标签:数据库

公司真实场景下的SQL优化总结

写在前面的话 来我们这家公司一年了 刚开始网站上线时首页打开非常的卡 后来发现是 sql 的原因 仔细看了下 sql 慢语句 (这里可以使用阿里的监控工具 druid 分析是哪条 sql 导致的响应缓慢) 刚开始不懂优化 就是在 客服端上瞎改知道改的快了为止 摸石头过河吧 让我直接说方法我也很懵逼 你给我一条 sql 让我调优我觉得我能做到 ……

文档数据库一MongoDB

文档数据库文档数据库总体形式上也是键值对的形式 ,但是值又可以有各种数据结构:数组、键值对、字符串等,可以认为是 JSON 格式的数据存储,因此能够对任意字段建立索引,实现关系型数据库的某些功能 。MongoDB 是一个分布式文件存储的数据库,是非关系型数据库中最像关系型数据库的 。其具有以下特点 。灵活模式: 数据以 JSON 格式存储。高可用性……

浅谈非关系型数据库

非关系型数据库非关系型数据库是相对关系型数据库来讲的,又被称为 NoSQL 数据库,也可以叫作 Not Only SQL 数据库 。 相比传统的 SQL 关系型数据库,其最大的特点就是适合存储非结构化或半结构化的数据,适合存储大规模数据。 以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限……

深入浅出MySQL数据库(四)数据类型、存储引擎、常用函数

MySQL 中的数据类型数值型整数型浮点型字符串类型CHAR 效率高于 VARCHAR,CHAR 相当于拿空间换时间,VARCHAR 拿时间换空间CHAR 默认存储数据的时候,后面会用空格填充到指定长度;而在检索的时候会去掉后面空格;VARCHAR 在保存的时候不进行填充,尾部的空格会留下TEXT 列不能有默认值,检索的时候不存在大小写转换……

深入浅出MySQL数据库(三)MySQL数据操作

添加记录INSERT [INTO] tbl_name[(col_name,...)] {VALUE|VALUES}(VALUES...);不指定字段名称:INSERT tbl_name VALUE(value...) 需要按照建表时的字段顺序给每一个字段赋值列出指定字段:INSERT tbl_name(字段名称,...) VALUES(值,...……

深入浅出MySQL数据库(二)数据表相关操作

数据表相关操作思维导图数据表是数据库最重要的组成部分之一,数据是保存在数据表中。数据表由行(row)和列(column)来组成。每个数据表中至少有一列,行可以有零行一行或者多行组成。表名要求唯一,不要包含特殊字符,最好含义明确。创建表CREATE TABLE [IF NOT EXISTS] tbl_name( 字段名称 字段类型……

深入浅出MySQL数据库(一)数据库简介及相关操作

什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。  常见数据库OracleDB2SQL ServerPostgre SQLMySQL  相关术语数据库系统(Database System):DBS数据库(Database)数据库管理系统(Database Man……

数据库系统概论(十)约束

1. 键码用于唯一表示一个实体。键码可以由多个属性构成,每个构成键码的属性称为码。2. 单值约束某个属性的值是唯一的。3. 引用完整性约束一个实体的属性引用的值在另一个实体的某个属性中存在。4. 域约束某个属性的值在特定范围之内。5. 一般约束比如大小约束,数量约束。参考资料– 史嘉权. 数据库系统概论[M]. 清华大学出……

数据库系统概论(九)关系数据库建模

ER 图Entity-Relationship,有三个组成部分:实体、属性、联系。1. 实体的三种联系联系包含一对一,一对多,多对多三种。如果 A 到 B 是一对多关系,那么画个带箭头的线段指向 B;如果是一对一,画两个带箭头的线段;如果是多对多,画两个不带箭头的线段。下图的 Course 和 Student 是一对多的关系。2. 表示出现多次的……

数据库系统概论(八)数据库系统概述

基本术语1. 数据模型由数据结构、数据操作和完整性三个要素组成。2. 数据库系统数据库系统包含所有与数据库相关的内容,包括数据库、数据库管理系统、应用程序以及数据库管理员和用户,还包括相关的硬件和软件。数据库的三层模式和两层映像– 外模式:局部逻辑结构– 模式:全局逻辑结构– 内模式:物理结构1. 外模……

数据库系统概论(七)关系数据库理论

函数依赖记 A->B 表示 A 函数决定 B,也可以说 B 函数依赖于 A。如果 {A1,A2,… ,An} 是关系的一个或多个属性的集合,该集合决定了关系的其它所有属性并且是最小的,那么该集合就称为键码。对于 W->A,如果能找到 W 的真子集 W’,使得 W’-> A,那么 W->A 就是……

数据库系统概论(六)Next-Key Locks

Next-Key Locks 也是 MySQL 的 InnoDB 存储引擎的一种锁实现。MVCC 不能解决幻读的问题,Next-Key Locks 就是为了解决这个问题而存在的。在可重复读隔离级别下,MVCC + Next-Key Locks,就可以防止幻读的出现。Record Locks锁定的对象是索引,而不是数据。如果表没有设置索引,InnoDB 会……

数据库系统概论(五)多版本并发控制

(Multi-Version Concurrency Control, MVCC)是 MySQL 的 InnoDB 存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。而未提交读隔离级别总是读取最新的数据行,无需使用 MVCC;可串行化隔离级别需要对所有读取的行都加锁,单纯使用 MVCC 无法实现。版本号– 系统版本号……

数据库系统概论(四)隔离级别

1. 未提交读(READ UNCOMMITTED)事务中的修改,即使没有提交,对其它事务也是可见的。2. 提交读(READ COMMITTED)一个事务只能读取已经提交的事务所做的修改。换句话说,一个事务所做的修改在提交之前对其它事务是不可见的。3. 可重复读(REPEATABLE READ)保证在同一个事务中多次读取同样数据的结果是一样的。4.……

数据库系统概论(三)封锁

封锁粒度应该尽量只锁定需要修改的那部分数据,而不是所有的资源。锁定的数据量越少,发生锁争用的可能就越小,系统的并发程度就越高。但是加锁需要消耗资源,锁的各种操作,包括获取锁,检查锁是否已经解除、释放锁,都会增加系统开销。因此封锁粒度越小,系统开销就越大。需要在锁开销以及数据安全性之间做一个权衡。MySQL 中提供了两种封锁粒度:行级锁以及表级锁。封……

数据库系统概论(二)并发一致性问题

在并发环境下,一个事务如果受到另一个事务的影响,那么事务操作就无法满足一致性条件。问题1. 丢失修改T<sub>1</sub> 和 T<sub>2</sub> 两个事务都对一个数据进行修改,T<sub>1</sub> 先修改,T<sub>2</sub> 随后……

数据库系统概论(一)事务

概念事务指的是满足 ACID 特性的一系列操作。在数据库中,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。四大特性1. 原子性(Atomicity)事务被视为不可分割的最小单元,要么全部提交成功,要么全部失败回滚。2. 一致性(Consistency)事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个……

SQL(二)进阶操作

一、函数各个 DBMS 的函数都是不相同的,因此不可移植。文本处理 函数说明LEFT() RIGHT()左边或者右边的字符LOWER() UPPER()转换为小写或者大写LTRIM() RTIM()去除左边或者右边的空格LENGTH()长度SUNDEX()转换为语音值其中,SOUN……

SQL(一)初级操作

一、基础模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。主键的值不允许修改,也不允许复用(不能使用已经删除的主键值赋给新数据行的主键)。SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQ……

Redis(四)与比较Memcached、适用场景、数据淘汰策略、论坛系统分析

与比较 Memcached两者都是非关系型内存键值数据库。有以下主要不同:数据类型Memcached 仅支持字符串类型,而 Redis 支持五种不同种类的数据类型,使得它可以更灵活地解决问题。数据持久化Redis 支持两种持久化策略:RDB 快照和 AOF 日志,而 Memcached 不支持持久化。分布式Memcached 不支持分布式,只……

Redis(三)处理故障、分片

处理故障要用到持久化文件来恢复服务器的数据。持久化文件可能因为服务器出错也有错误,因此要先对持久化文件进行验证和修复。对 AOF 文件就行验证和修复很容易,修复操作将第一个出错命令和其后的所有命令都删除;但是只能验证快照文件,无法对快照文件进行修复,因为快照文件进行了压缩,出现在快照文件中间的错误可能会导致整个快照文件的剩余部分无法读取。当主服务器出……

Redis(二)键的过期时间、发布与订阅、事务、持久化、复制

键的过期时间Redis 可以为每个键设置过期时间,当键过期时,会自动删除该键。对于散列表这种容器,只能为整个键设置过期时间(整个散列表),而不能为键里面的单个元素设置过期时间。过期时间对于清理缓存数据非常有用。发布与订阅订阅者订阅了频道之后,发布者向频道发送字符串消息会被所有订阅者接收到。发布与订阅模式和观察者模式有以下不同:– ……

Redis(一)Redis介绍

Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。五种类型数据类型为:字符串、列表、集合、有序集合、散列表。Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。 五种基本类型数据类型可以存储的值操作STRING字符……

MySQL(六)故障转移和恢复

故障转移也叫做切换,当主库出现故障时就切换到备库,使备库成为主库。故障恢复顾名思义就是从故障中恢复过来,并且保证数据的正确性。提升备库或切换角色提升一台备库为主库,或者在一个主-主复制结构中调整主动和被动角色。虚拟 IP 地址和 IP 托管为 MySQL 实例指定一个逻辑 IP 地址,当 MySQL 实例失效时,可以将 IP 地址转移到另一台 My……