
DATABASE
文章平均质量分 55
hy_coming
不忘初心 方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据库设计】——MYSQL默认值null问题
前言平常我们在设计数据库的时候都是比较懒的,总是喜欢用在可空的字段中使用的默认值为null的创建语句,那么下面简单说下理解正文首先看下默认值的情况1. NULL 与空字符存储上的区别表中如果允许字段为 NULL,会为每行记录分配 NULL 标志位。NULL 除了在每行的行首存有 NULL 标志位,实际存储不占有任何空间。如果表中所有字段都是非 NULL,就不存在这个标示位了。网上有一些验证 MySQL 中 NULL 存储方式的文章,可以参考下。2. NULL使用上的一些问题。数值类型原创 2021-06-22 21:51:50 · 5243 阅读 · 1 评论 -
MySQL Delete语句不能用别名问题
问题:在使用mySql 的 Delete 语句时,像Select 、 Update 那样使用别名时发现会报语法错误例:DELETE FROM t_home_reimbursement_analysis a WHERE a.CASH_TIME_ >= '2020-08-05' ;DELETE FROM t_home_reimbursement_analysis a WHERE a.CASH_TIME_ >= '2020-08-05' ;[SQL]DELETE .转载 2021-01-25 16:56:34 · 998 阅读 · 0 评论 -
【MySQL】INSERT INTO SELECT语句
一、描述INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。二、语法INSERT INTO table2SELECT * FROM table1;INSERT INTO table2(column_name(s))SELECT column_name(s)FROM table1;三、实...原创 2020-04-09 11:05:48 · 2497 阅读 · 0 评论 -
SQL Join连接大小表在前在后的重要性(小表在前提高执行效率)
经常看到一些Hive优化的建议中说当小表与大表做关联时,把小表写在前面,这样可以使Hive的关联速度更快,提到的原因都是说因为小表可以先放到内存中,然后大表的每条记录再去内存中检测,最终完成关联查询。这样的原因看似合理,但是仔细推敲,又站不住脚跟。多小的表算小表?如果所谓的小表在内存中放不下怎么办?我用2个只有几条记录的表做关联查询,这应该算是小表了,在查看reduce的执行日志时依然是有写磁...转载 2020-03-25 10:09:53 · 17261 阅读 · 1 评论 -
Mysql主键最大值以及整型类型解析
背景:正常我们的主键类型都是递增的,设置的类型可能是bigint(20),也有可能是int(11),为啥这样设置呢一、整型类型类型 占用字节 二进制位数 最大值 最大值位数 数据库中设置 M(最大显示宽度默认值) tinyint 1 8 2^8-1 3 tinyint(M) 4 smallint 2 ...原创 2020-03-24 10:17:30 · 1613 阅读 · 0 评论 -
连接MySql报错(时区错误)——The server time zone value "" is unrecognized or represents more t...
在使用SpringBoot创建并启动项目时,出现的一个SqlSQLException。经查验,该问题是MySql本身的时区设置的问题导致的。完整的异常信息如下:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents morethan one time zone...转载 2020-01-31 20:53:23 · 1143 阅读 · 0 评论 -
《阿里巴巴JAVA开发手册》里面写超过三张表禁止join 这是为什么
以下内容转载于知乎上面的优秀回答,方面以后查阅,原文地址:https://www.zhihu.com/question/56236190一:为什么做这种限制?打个比方,如果我有无限的钱,我想买个豪华别墅,想买个跑车,想买个直升飞机,但现实是我没钱,只能租房住,只能走路上下班。。如果数据库的性能无限强大,多个表的join肯定是需要的,尤其是复杂的分析型(OLAP)查询,甚至可能涉及10几...转载 2020-01-10 11:24:52 · 1161 阅读 · 0 评论 -
【数据库】——导出数据库文档
领导突然跟我说需要导出一个数据库文档,可是数据表太多,然后自己写也需要花一定的时间,还不一定能够满足领导的要求,然后干脆网上搜了一下别人造的轮子,用了下面的这一款,感觉还行地址:https://github.com/PomZWJ/database-export项目地址:https://github.com/PomZWJ/database-export.git...原创 2019-10-10 21:22:15 · 165 阅读 · 0 评论 -
【数据库】——分库分表(2)
一、动态扩容前面我们已经说了分库分表的一些概念,那么现在问题来,假如我们现在分库分表了,4个库,4张表,就是原先的单台的一张表现在拆分成4个库中的实际16张表,可是加入我们是一段时间之后又需要扩容怎么办?最好方案就是一次到位,32个库和32个表,总共是1024个表,加入一个表的数据量是500万,那么就是50亿数据,可以用几年了,对于中小型互联网来说,每个库的并发量1000,那就可以支持32...原创 2019-10-01 17:10:08 · 175 阅读 · 0 评论 -
【数据库】——分库分表(1)
背景说道分库分表主要还是未来支持高并发准备的,加入我们现在的业务场景只有几千的用户量,没有只有几百的数据量,对我们来说分库分表就变的毫无意义,因为这样的速到距离达到单表和单库的瓶颈还有很长的一段距离(正常的Mysql单表的数据量达到500万级别,性能开始有点下降了,达到千万级别性能就会严重下降,单库在不考虑容量的前提下,最大支持的并发数也就是1000到2000左右)。但是一旦业务量变大,分库分...原创 2019-10-01 16:20:11 · 187 阅读 · 0 评论 -
mysql sum(if())和count(if())用法
SELECT SUM(extcredits1) AS e1 FROM test;解析:没有条件,sum函数统计所有extcredits1的总数SELECT SUM(if(category=1,size,0)) ,COUNT(if(category=1,true,null)) FORM t_file;解析:sum函数:根据if判断为true,返回size,然后sum函数统...原创 2019-08-11 14:20:44 · 3609 阅读 · 1 评论 -
Mysql 替换某个字符串指定位置字符串
需求:隐藏手机号码中中间四位,sql如下select nickname =concat(LEFT (nickname, 3),'****',RIGHT (nickname, 4))from tb_usersWHERELENGTH(nickname) = 11AND nickname LIKE '1%' ASCII(str)返回字符串str的最左面字符的ASC...转载 2019-06-18 13:06:34 · 11589 阅读 · 0 评论 -
MYSQL中replace into的用法
新建一个test表,三个字段,id,title,uid, id是自增的主键,uid是唯一索引;插入两条数据insert into test(title,uid) VALUES ('123465','1001');insert into test(title,uid) VALUES ('123465','1002');执行单条插入数据可以看到,执行结果如下:[SQL]...转载 2019-05-23 11:52:08 · 222 阅读 · 0 评论 -
MySQL中查询表及索引大小的方法
查询MySQL表的大小及索引大小可以通过系统库information_schema中的TABLES表来实现。该表常用的一些字段:TABLE_SCHEMA:数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录行数DATA_LENGTH:表大小INDEX_LENGTH:索引大小1、可以查询数据库的数据行数、表空间、索引空间,如下,将[...转载 2019-05-22 10:52:12 · 378 阅读 · 0 评论 -
MySQL的常用命令集锦
下面是我们经常会用到且非常有用的MySQL命令。下面你看到#表示在Unix命令行下执行命令,看到mysql>表示当前已经登录MySQL服务器,是在mysql客户端执行mysql命令。登录MySQL,如果连接远程数据库,需要用-h指定hostname。登录MySQL,如果连接远程数据库,需要用-h指定hostname。# [mysql dir]/bin/mysql -h hostn...转载 2019-02-24 16:35:58 · 340 阅读 · 0 评论 -
手把手教你用Mysql-Cluster-7.5搭建数据库集群
前言当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负载均衡的前提就是,各个服务器的数据库是数据同步的。在业务量不大的时候,我们会使用主从复制的方法实现服务器数据同步,一主多从或者是双主等,但是虽然进行了读写分离,但是对于读的方法限制还是比较大,所以解决数据同步的问题就是数据库集群的意义...转载 2019-03-05 01:12:46 · 253 阅读 · 0 评论 -
浅谈高性能数据库集群——读写分离
1 读写分离概述读写分离概述.png基本架构图: 基本架构图.jpg2 适用场景适用场景.png读写分离不是银弹,并不是一有性能问题就上读写分离,而是应该先优化,例如优化慢查询,调整不合理的业务逻辑,引入缓存查询等只有确定系统没有优化空间后才考虑读写分离集群3 引入的系统复杂度问题问题一 主从复制延迟主从复制延迟.png问题二 分配机制...转载 2019-02-25 22:04:09 · 207 阅读 · 0 评论 -
【数据库】分区分表分库、读写分离
一、什么是分区、分表、分库分区就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的分表就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。分库一旦分表,一个库中的表会越来越多将整个数据库比作图书馆,一张表就是一本书。当要在一本书中查找某项内容时,如果不分章节,查找的效...转载 2019-03-05 21:13:21 · 574 阅读 · 0 评论 -
数据库的延迟加载机制的应用、缓存管理
一、延迟加载1、 延迟加载延迟加载(load)是Hibernate为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据时才会创建。场合一:当用户要取数据库的一张表的一个字段,这个字段很可能就是一个字符,总而言之长度是比较短的。场合二:当用户要取数据库的一张表的一个字段的值,而这个值很可能是blob类型,也许存取的是一个很大的视频文件。两种场合的取数据的方法一样吗?是用loa...转载 2019-03-10 21:12:29 · 868 阅读 · 0 评论 -
【数据库】——索引原理
使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境(我自己也还没有达到这层境界)。很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。为什么要给表加上主键? 为什么加索引后会使查询变快? 为什么加索...原创 2019-03-26 15:31:31 · 206 阅读 · 0 评论 -
EXPLAIN 执行计划命令详解
在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时...转载 2019-03-31 12:25:05 · 529 阅读 · 0 评论 -
【数据库】——分页
sqlserver分页第一种分页方法需用到的参数:pageSize 每页显示多少条数据pageNumber 页数 从客户端传来totalRecouds 表中的总记录数 select count (*) from 表名totalPages 总页数totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:tota...转载 2019-03-31 12:48:13 · 356 阅读 · 0 评论 -
【数据库】——MySql常用函数
数学函数字符串函数日期和时间函数条件判断函数系统信息函数加密函数格式化函数转载 2019-03-31 13:22:19 · 164 阅读 · 0 评论 -
【数据库】——oracle常用函数
OracleSQL提供了用于执行特定操作的专用函数。这些函数大大增强了SQL语言的功能。函数可以接受零个或者多个输入参数,并返回一个输出结果。oracle数据库中主要使用两种类型的函数:1.单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,比如:MOD(x,y)返回x除以y的余数(x和y可以是两个整数,也可以是表中的整数列)。常用的...转载 2019-03-31 13:29:43 · 241 阅读 · 0 评论 -
mysql原理解析
一、分库分表方案数据库架构演变刚开始我们只用单机数据库就够了,随后面对越来越多的请求,我们将数据库的写操作和读操作进行分离, 使用多个从库副本(Slaver Replication)负责读,使用主库(Master)负责写, 从库从主库同步更新数据,保持数据一致。架构上就是数据库主从同步。 从库可以水平扩展,所以更多的读请求不成问题。但是当用户量级上来后,写请求越来越多,该怎么办?加一个...转载 2019-02-27 23:03:00 · 284 阅读 · 0 评论