数据库
文章平均质量分 82
吉诺比利20
每天进步一点点
展开
-
MySQL中四种存储日期类型的比较与选择
在开始接触Java时也许会使用String存储字符串,但是比较占空间且效率态度,在日常开发中,MySql通常使用的日期类型有Date、Datetime、Timestamp、时间戳四种类型。1.Date格式Date的存储数据格式为:YYYY-MM-DD,它支持的范围为’1000-01-01’到’9999-12-31’,如果不需要存储时分秒的数据,那推荐用Date格式存储。`work_date` date DEFAULT NULL COMMENT '工作日期',2. Datetime格式和TimeS原创 2021-07-21 21:20:12 · 2686 阅读 · 1 评论 -
mysql快速插入海量数据的方法总结
多线程插入(单表)多线程插入(多表)预处理SQL多值插入SQL事务(N条提交一次)多线程插入(单表)问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗?答:在数据里做插入操作的时候,整体时间的分配是这样的:链接耗时 (30%)发送query到服务器 (20%)解析query (20%)插入操作 (10% * 词条数目)插入index (10% * Index的数目)关闭链接 (10%)从这里可以看出来,真正耗时的不是操作,而是链接,解析的.转载 2020-11-19 16:00:28 · 550 阅读 · 0 评论 -
Mysql动态行转列处理一对多数据
一、业务需求在系统中有一张事件单表以及它的扩展字段表,如下图所示:事件单主表:扩展字段表:主表的一条数据对应着多条扩展表的数据,业务人员想将扩展表的field_code作为列的标题,field_value作为列的值与主表拼在一起查出来,这就是典型的列转行问题了。由于field_code不固定,所以需要动态行转列。二、SQL实现联表查询SQL:SELECTe.id,e.title,e.service_catalog_struct,s.field_code,s.field_value原创 2020-10-15 23:10:42 · 1042 阅读 · 0 评论 -
生产环境又有问题?都是脏数据惹的祸!
本文笔者对脏数据的来源、脏数据的危害、脏数据的预防、如何对已出现的脏数据进行处理等问题进行详细阐述。“小光,今天那个诡异的生产环境问题找到原因了吗?”“还是数据问题!之前做的一个功能有一部分数据迁移工作没有做好,导致生产环境有脏数据,委托人的联系人已经不为该委托人服务了,应该移除掉的……”“又是脏数据……”“嗯,好在不是代码问题。”这是在蓝鲸项目发生的真实对话。其中提到的脏数据(Dirty data),也叫坏数据(Bad data),通常是指跟期...转载 2020-06-01 20:05:30 · 969 阅读 · 0 评论 -
Mysql索引失效原理与最左匹配原则
索引的底层是一颗B+树,那么联合索引当然还是一颗B+树,只不过联合索引的健值数量不是一个,而是多个。构建一颗B+树只能根据一个值来构建,因此数据库依据联合索引最左的字段来构建B+树。例子:假如创建一个(a,b)的联合索引,那么它的索引树是这样的可以看到a的值是有顺序的,1,1,2,2,3,3,而b的值是没有顺序的1,2,1,4,1,2。所以b = 2这种查询条件没有办法利用索引,因为联合索引首先是按a排序的,b是无序的。同时我们还可以发现在a值相等的情况下,b值又是按顺序排列的,但是这种顺序是相对的转载 2020-05-27 21:23:38 · 3058 阅读 · 0 评论 -
数据库表的设计流程和思考方向
数据库设计的基本步骤按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段1.需求分析2.概念结构设计3.逻辑结构设计4.物理结构设计5.数据库实施6.数据库的运行和维护 数据库设计通常分为6个阶段1(需求分析:分析用户的需求,包括数据、功能和性能需求;2概念结构设计:主要采用E-R模型进行设计,包括画E-R图;3逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;4数据库物理设计:主要是为所设计的数据库选择合适的存储结构和...转载 2020-05-10 09:52:33 · 8404 阅读 · 0 评论 -
[LeetCode]185. 部门工资前三高的所有员工
部门工资前三高的所有员工Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId 。IdNameSalaryDepartmentId1Joe8500012Henry8000023Sam6000024Max9000015Janet6900...原创 2020-05-05 17:21:16 · 393 阅读 · 0 评论 -
02.一条SQL更新语句是如何执行的?
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是...原创 2020-04-13 22:29:50 · 122 阅读 · 0 评论 -
01.一条SQL查询语句是如何执行的?
本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成以及这些组件的作用是什么,可以帮助我们理解和解决这些问题。一 MySQL 基础架构分析1.1 MySQL 基本架构概览下图是 MySQL 的一个简要架构图,从下...原创 2020-04-13 22:29:23 · 241 阅读 · 0 评论 -
Redis学习总结(数据类型、持久化、事务、数据删除策略、主从复制、哨兵、缓存雪崩等)
Redis学习总结1.Redis是什么概念:redis是一个由C语言开发的高性能基于键值对存储的内存数据库。特点:1、数据间没有必然的关联关系2、内部采用单线程机制进行工作3、数据存储在内存中,读写性能高4、多数据类型支持:string、list、hash、set、sorted_set5、持久化支持,可以进行数据灾难恢复应用场景:1、为热点数据加速查询,如热点商品、热点新闻、...原创 2020-03-22 00:37:43 · 1119 阅读 · 0 评论 -
Mysql性能优化总结
1、查找出慢查询sql,在一下配置文件中C:\ProgramData\MySQL\MySQL Server 8.0\my.ini慢查询的日志:慢查询的常用分析工具:Mysqldumpslow需要拥有的功能:排序,先优化时间消耗多的,再优化消耗少的常用的优化方式:服务器硬件优化mysql服务器优化sql本身优化数据查询数量大时尽量使用连接查询代替子查询。反范式设计优化:...原创 2020-03-24 22:31:19 · 164 阅读 · 1 评论