数据库
进击的Z同学
大数据开发工程师
展开
-
分库分表
文章目录一、垂直(纵向)切分垂直分库垂直分表二、水平(横向)切分三、分库分表带来的问题3.1 事务一致性问题3.2 跨节点关联查询 join 问题3.3 跨节点分页、排序、函数问题3.4 全局主键避重问题3.4.1 UUID3.4.2 结合数据库维护主键 ID 表3.4.3 Snowflake 分布式自增 ID 算法3.5 数据迁移、扩容问题四、什么时候考虑切分五、案例分析六、附录:支持分库分表中...原创 2020-03-05 13:10:03 · 305 阅读 · 0 评论 -
慢查询详解
文章目录一、为何要对慢 SQL 进行治理二、MySQL 执行原理三、慢查询四、SQL 语句常见优化一、为何要对慢 SQL 进行治理从数据库角度看:每个 SQL 执行都需要消耗一定 I/O 资源,SQL 执行的快慢,决定资源被占用时间的长短。假设总资源是 100,有一条慢 SQL 占用了 30 的资源共计 1 分钟。那 么在这 1 分钟时间内,其他 SQL 能够分配的资源总量就是 70,如此循环...原创 2020-03-03 12:13:29 · 2516 阅读 · 0 评论 -
索引详解
文章目录一、认识索引二、索引的类型1. B-TREE索引2. 哈希索引3. 空间数据索引(R-Tree)4. 全文索引三、索引和存储引擎之间的关系四、B-Tree 索引与唯一索引,主键索引,普通索引的关系一、认识索引认识索引是什么东西非常关键,一个非常恰当的比喻就是书的目录与书的正文内容之间的关系,为了方便查找书中的内容,通过对内容简历索引形成目录。因此,首先你要明白的一点就是,索引它也是一个...原创 2020-03-01 15:19:33 · 677 阅读 · 0 评论 -
Spring 的事务传播行为
事务传播指的是一个方法传播到另一个方法的事务传播。Spring解决的就是方法之间的事务传播。Spring中枚举定义了七种事务传播行为。//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package org.springframew...原创 2020-02-28 14:45:22 · 187 阅读 · 0 评论 -
mysql实现主从复制(实操及原理)
文章目录安装mysql主库配置从库配置验证原理这里我们配置mysql的一主一从。机器使用如下:iprole101.132.138.185master122.51.214.240slave安装mysql首先将本地下载好的mysql的rpm安装包scp到目标服务器上。首先将rpm安装包通过scp传送到服务器,然后安装配置mysql的yum源的rpm包。r...原创 2019-12-01 16:26:26 · 343 阅读 · 0 评论 -
用了这么久的数据库连接池,你知道原理吗?(转)
文章目录一、早期我们怎么进行数据库操作二、技术演进出来的数据库连接池三、连接池还要考虑更多的问题四、实际开发中有成熟的开源连接池供我们使用这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。一、早期我们怎么进行数据库操作1、原理一般来说,Java应用程序访问数据库的过程是:①装载数据库驱动程序;②通过jdbc建立数据库...转载 2019-11-28 10:58:40 · 196 阅读 · 0 评论 -
高性能MySQL基础总结(读书随笔)
两种最重要的锁策略表锁和行锁表锁是MySQL中最基本的锁策略,而且是开销最小的策略,它会锁定整张表一个用户在对表进行写操作前,需要先获得写锁,这会阻塞其他用户对该表的所有读写操作。只有没有写锁时,其他读取的用户才能获得读锁,读锁之间是不互相阻塞的。尽管存储引擎可以管理自己的锁,MySQL本身还是会使用各种有效的表锁来实现不同的目的。例如,服务器会为诸如Alter Table之类的...原创 2019-07-03 00:07:53 · 317 阅读 · 0 评论 -
PostgreSQL基于模板创建数据库
今天在新建数据库时报错,提示使用模板数据库被使用,报错信息:ERROR: source database "template1" is being accessed by other usersDETAIL: There is 1 other session using the database.了解了一下在创建数据库时指定模板,问题解决。1.创建数据库create databa...原创 2019-06-29 09:14:29 · 1636 阅读 · 1 评论 -
两张表关联查询,并统计其中一张表在关联条件下的数据个数
业务场景为统计项目表和用户表关联查询,项目id为用户的关联字段,一个项目下有多个项目,目标是查出来项目id,产品编号(项目里的字段)和某个项目id下的用户总数,过滤调剂是过滤掉过期的数据和被禁用及被删除的记录。select p.id as projectId, p.product_code as productCode, count(u.project_id) as userNum from p...原创 2019-06-29 10:02:00 · 9854 阅读 · 0 评论 -
数据库题目汇总
文章目录选择题填空题选择题填空题问题1问存在一张电商交易订单表order如下:id order_no shop_id user_id create_time1 E10001 201 101 2018-09-01 12:00:002 E10002 202 102 2018-09-01 12:01:003 E10003 201 103 2018-09-01 12:03:00统计订单...原创 2019-08-18 22:16:14 · 433 阅读 · 0 评论 -
SQL基础(转)
文章目录一、基础二、创建表一、基础模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。主键的值不允许修改,也不允许复用(不能将已经删除的主键值赋给新数据行的主键)。SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQL、Transa...转载 2019-10-11 16:30:13 · 939 阅读 · 0 评论 -
MySQL基础(转)
文章目录一、索引B+ Tree 原理一、索引B+ Tree 原理1. 数据结构B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。在 B+ Tree 中,一个节点中的 key 从左到右非...转载 2019-10-11 16:33:36 · 615 阅读 · 0 评论 -
Leetcode-Database 题解
文章目录175. 组合两个表175. 组合两个表链接:https://leetcode-cn.com/problems/combine-two-tables/问题表1: Person±------------±--------+| 列名 | 类型 |±------------±--------+| PersonId | int || Firs...原创 2019-10-11 16:41:21 · 226 阅读 · 0 评论 -
Windows下的MySQL安装过程
首先去官网下载MySQL安装文件。网址:https://dev.mysql.com/downloads/mysql/原创 2019-07-08 09:01:07 · 211 阅读 · 0 评论 -
获取近一年(12个月)的记录数统计(按月份)
近一年(12个月)项目数量统计,按月份,同时将月份格式化select to_char(create_time, 'YYYY-MM') as createDate,count(id) as count from project_info group by createDate order by createDate desc limit 12...原创 2019-07-01 17:14:26 · 6085 阅读 · 1 评论 -
postgresql连接和退出命令
连接:./psql -U username注意要大写。退出:不是用exit();这种 而是:\q来退出。原创 2019-06-14 14:47:11 · 9045 阅读 · 1 评论 -
mysql基础知识整理
mysql基础知识整理约束:修改数据表数据表更名方法一:方法二:插入记录 INSERT更新记录(单表更新)UPDATEDELETE 删除记录(单表删除)SELECT 查找记录GROUP BY查询结果分组ORDER BY对查询结果进行排序LIMIT限制查询结果返回的数量子查询多表更新连接更多文章欢迎访问个人博客 www.herobin.top约束:按功能划分:NOT NULL, RPIMAR...原创 2019-01-22 14:32:37 · 239 阅读 · 0 评论 -
mysql存储过程
mysql存储过程存储过程存储过程的优点存储引擎并发控制事物更多文章欢迎访问个人博客 www.herobin.top存储过程存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程的优点增强SQL语句的功能和灵活性实现较快的执行速度减少网络流量IN:表示该参数的值必须在调用存储过程时指定OUT:表示该参数的值可以被存储过程改变,并且可...原创 2019-01-22 14:40:22 · 111 阅读 · 0 评论 -
could not create connection to database问题解决
could not create connection to database问题解决更多文章欢迎访问个人博客 www.herobin.topcould not create connection to databasewen问题解决今天要将项目部署到阿里云服务器上时,先将项目里的数据库配置信息改为了阿里云上面的数据库信息,运行启动后报错could not create connectio...原创 2019-01-31 11:26:29 · 16216 阅读 · 0 评论 -
数据库密码明文加密
数据库密码明文加密数据库密码明文加密更多文章欢迎访问个人博客 www.herobin.top数据库密码明文加密我们常规的数据库信息都是写在jdbc.properties里面的这样直接将数据库账号名和密码放在代码中是有一定风险的,存在被黑客窃取的可能,所以我们可以使用加密过的字符串来替换其中的明文密码。效果如图:那么这一串加密过的字符串是怎么得到的呢?这里我们使用的是DES加密算法,这...原创 2019-01-31 11:53:46 · 7740 阅读 · 0 评论 -
PostgreSQL-基础篇
文章目录什么是PostgreSQL?PostgreSQL的特点PostgreSQL安装(Windows)PostgreSQL数据类型数值数据类型字符串数据类型日期/时间数据类型一些其他数据类型布尔类型货币类型几何类型什么是PostgreSQL?PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。Po...转载 2019-05-07 14:23:49 · 208 阅读 · 0 评论 -
PostgreSQL定期删除七天以前的记录
定期删除在mysql通过创建存储过程和触发器比较容易,在postgresql中的方式会有些不一样,这里用到的是postgresql的函数(存储过程和触发器)postgresql函数(存储过程)介绍:https://www.yiibai.com/postgresql/postgresql-functions.htmlpostgresql触发器介绍:https://www.yiibai.com/p...原创 2019-05-15 16:19:36 · 7418 阅读 · 0 评论 -
MySQL自动删除指定时间以前的记录
总体思路:创建存储过程创建事件开启事件创建存储过程CREATE PROCEDURE `prc_del_user`(IN daycount int) COMMENT '自动删除过期记录'BEGINdelete from user where (TO_DAYS(NOW()) - TO_DAYS(createtime))>=daycount; END;创建事件CREAT...原创 2019-05-15 16:33:09 · 2034 阅读 · 0 评论 -
Shell脚本定时清理PostgreSQL过期数据
前面实现了在数据库中通过编写函数(存储过程)和触发器来清理创建时间七天以上的数据,用的触发策略为insert,即每次插入数据都会触发该清除历史数据的函数,性能上考虑太差了,所以优化为通过shell脚本的形式来定时在每天凌晨两点清除。shell脚本如下:#!/bin/sh# 自动定期删除创建时间大于七天的记录/home/cms/postgresql/bin/psql -h 127.0.01 ...原创 2019-05-15 19:19:12 · 5410 阅读 · 0 评论 -
定期给数据库以及图片进行备份
文章目录实现服务器每天零点零分对数据库和图片进行自动备份备份数据库信息备份图片压缩包通过linux的crontab来设定定时任务实现定期备份实现服务器每天零点零分对数据库和图片进行自动备份利用linux自带的crontab实现数据库以及图片的定期备份。登录阿里云服务器后创建一个文件夹保存我们的备份文件mkdir backupcd backupmkdir sqlmkdir image...原创 2019-05-16 12:03:38 · 618 阅读 · 0 评论 -
数据库系统原理
文章目录一、事务概念ACIDAUTOCOMMIT二、并发一致性问题丢失修改读脏数据不可重复读幻影读三、封锁封锁粒度封锁类型封锁协议1. 三级封锁协议2. 两段锁协议MySQL 隐式与显示锁定四、隔离级别未提交读(READ UNCOMMITTED)一、事务概念事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。ACID1...转载 2019-05-16 19:31:47 · 1910 阅读 · 0 评论 -
SQL必知必会
文章目录一、基础二、创建表三、修改表四、插入五、更新六、删除七、查询DISTINCTLIMIT一、基础模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。主键的值不允许修改,也不允许复用(不能使用已经删除的主键值赋给新数据行的主键)。SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI ...转载 2019-05-17 11:06:57 · 169 阅读 · 0 评论 -
Linux下的PostgreSQL安装
原博链接pg数据库下载地址http://www.postgresql.org/ftp/source/这里我们使用的是9.6.2版本安装依赖包yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-deve...转载 2019-06-18 20:49:00 · 440 阅读 · 0 评论 -
sqlserver数据库大小写不敏感问题
sqlserver数据库大小写不敏感问题更多文章欢迎访问个人博客 www.herobin.topc#调用sqlserver数据库发现大小写不敏感,到数据库中查询发现是数据库中大小写就不敏感解决:是数据库排序规则设置错误。设置参考值_CI_AI 不区分大小写、不区分重音、不区分化名类型、不区分宽度 _CI_AI_WS 不区分大小写、不区分重音、不区分化名类型、区分宽度...原创 2019-01-22 13:31:14 · 4566 阅读 · 0 评论