• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

标签:数据库

数据库建表我改了无数次语句,终于达到DBA的要求了

 1、 表设计规范库名、表名、字段名必须使用小写字母,“_”分割。表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。 MySQL在windows下不区分大小写,但在Linux下默认区分大小写。所以数据库名、表名、字段名尽量不要出现任何大写字母,避免问题发生。库名、表名、字段名必须不超过1……

大牛是怎么思考设计SQL优化方案的?

在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。图-MySQL查询过程一、优化的哲学注:优化有风险,涉足需谨慎11、优化可能带来的问题?优化不总是对一个单纯的环境进行,还很可能是……

扎心一问:分库分表就能无限扩容吗

像我这样的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问,当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。正常情况下的服务演化之路让我们从最初开始。1、单体应用 每个创业公司基本都是从类似 SSM 和 SSH 这种架构起来的,没什么……

高手都这么设计数据库

只要你在做后端,数据库这块就绕不过去,根据业务和系统架构进行表设计也是我们经常需要做的工作,但是没有好的工具,对于一些数据表比较多大系统来说,很难维护,同样为了大家能有好的数据库设计体验,我今天简单谈谈如何使用数据库设计工具powerdesigner,看看它能解决我们日常中的哪些问题目录结构软件安装创建对应工程连接数据库实例并同步表……

架构设计之「数据库从主备到主主的高可用方案」

在互联网项目中,当业务规模越来越大,数据越来越多,随之而来的就是数据库压力会越来越大。慢慢就会发现,数据库层可能已经成为了整个系统的关键点和性能瓶颈了,因此实现数据层的高可用就成为了我们项目中经常要解决的问题。本文我们就来聊一聊如何实现数据存储层的高可用方案。在保障数据层的高性能与高稳定方面,最容易想到的方式就是对数据进行分片、多份、冗余等,……

架构设计之「数据库集群方案」

在之前的文章中,我们知道数据库服务可能已经成为了很多系统的性能关键点,甚至是瓶颈了。也给大家介绍了数据库服务器从主备架构、到主从架构、再到主主架构的基础方案。但如果单台机器已经不能满足完整业务数据存储的时候,我们就需要考虑采用多机甚至多中心的部署方案了。今天我们就再来聊一聊,在多机环境下,数据库集群的架构方案。同样,这里先不看细节,不管底层数……

理解数据库连接池底层原理之手写实现

前言数据库连接池的基本思想是:为数据库连接建立一个“缓冲池”,预先在池中放入一定数量的数据库连接管道,需要时,从池子中取出管道进行使用,操作完毕后,在将管道放入池子中,从而避免了频繁的向数据库申请资源,释放资源带来的性能损耗。在如今的分布式系统当中,系统的QPS瓶颈往往就在数据库,所以理解数据库连接池底层构造原理与设计思想是很有益处的。我们常用……

如何不停机分库分表迁移?

需求说明类似订单表,用户表这种未来规模上亿甚至上十亿百亿的海量数据表,在项目初期为了快速上线,一般只是单表设计,不需要考虑分库分表。随着业务的发展,单表容量超过千万甚至达到亿级别以上,这时候就需要考虑分库分表这个问题了,而不停机分库分表迁移,这应该是分库分表最基本的需求,毕竟互联网项目不可能挂个广告牌“今晚10:00~次日10:0……

数据库中为什么不推荐使用外键约束?

引言其实这个话题是老生常谈,很多人在工作中确实也不会使用外键。包括在阿里的JAVA规范中也有下面这一条:【强制】不得使用外键与级联,一切外键概念必须在应用层解决。 但是呢,询问他们原因,大多是这么回答的:每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,测试数据极为不方便。坦白说,这么说也是对的。……

数据库知识点总结-极客文库-知识库

如果图片无法查看或格式错乱,请前往极客文库-知识库查看原文1. 范式1.1. 1NF1.2. 2NF1.3. 3NF1.4. BCNF1.5. 4NF1.6. 5NF2. 什么是事务3. ACID4. 什么是事务隔离,事务隔离的级别?4.1. 可序列化4.2. 可重复读4.3. 提交读4.4. 未提交读5……

公司真实场景下的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.……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00