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

标签:数据库

带你彻底了解数据库索引

一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是B+Tree,Oracle及Sysb……

面对亿级订单数据的访问与存储,我们怎么实现与优化?

今年以来,网络上时不时的就会传出“某某公司又裁员了,技术团队也被裁了”,其中不乏我们熟悉的一些大厂。在这之后,市场上的“技术劳动力”又多了起来,而且这些“劳动力”中有相当一部分是有大型工程经验的,比如海量数据处理、高并发处理等经验。对于求职者来说,竞争更加激烈了,在这个时刻,硬实力更显得尤为重要。面试的时候,很可能会被问到海量数据的……

数据库中间件那些事儿

1 数据库拆分过程及挑战        互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。1.1 垂直拆分对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库 中进行访问……

面试官:你来谈谈数据库优化的几个阶段?

引言大家在面试的时候,是否遭遇过,面试官询问你们是如何进行数据库优化的?那这个问题应该怎么答呢?其实写这个题材的原因是我这几天看到各公众号转的一篇数据库调优的知识(不上链接了),我就稍微翻了几下,上面动不动就来说要对数据库进行水平拆分,我就想反问各位读者,你们几个人经历过水平拆分?现在很多文章,实践性实在太差,只能说纯理论分析。这……

一文读懂分库分表的技术演进(最佳实践)

Why Not NoSQL/NewSQL?Why Not 分区?Why 分库分表?实战案例订单表用户表账户表复杂查询es+HBase简要延伸阅读es+HBase原理HBase检索能力扩展总结鸣谢每个优秀的程序员和架构师都应该掌握分库分表,这是我的观点……

数据库中间件详解 | 珍藏版

 1 数据库拆分过程及挑战        互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。 1.1 垂直拆分对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库……

你还在 Select * 吗?

应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们也有莫大的关系。程序中嵌入的一行行的SQL语句,如果使用了一些优化小技巧,定能达到事半功倍的效果。技巧1  比较运算符能用 “=”……

数据库索引是什么?新华字典来帮你!

 学过服务器端开发的朋友一定知道,程序没有数据库索引也可以运行。但是所有学习数据库的资料、教程,一定会有大量的篇幅在介绍数据库索引,各种后端开发工作的面试也一定绕不开索引,甚至可以说数据库索引是从后端初级开发跨越到高级开发的屠龙宝刀,那么索引到底在服务端程序中起着怎样的作用呢?这篇文章是一系列数据库索引文章中的第一篇,这个系列包括了下面四篇……

数据库建表我改了无数次语句,终于达到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( 字段名称 字段类型……

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

客服QQ


QQ:2248886839


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