数据库
文章平均质量分 71
晴天小哥哥
追求卓越, 成功就会在不经意间追上你
展开
-
MySQL面试之一条SQL是如何执行的
一 MySQL 基础架构分析1.1 MySQL 基本架构概览下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图,在 1.2 节中会详细介绍到这些组件的作用。**连接器:**身份认证和权限相关(登录 MySQL 的时候)。 **查询缓存:**执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。 分析器:没有命中缓存的话,SQL.原创 2021-09-09 17:10:40 · 290 阅读 · 0 评论 -
MySQL面试之三大日志详解
前言MySQL日志 主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其中,比较重要的还要属二进制日志binlog(归档日志)和事务日志redo log(重做日志)和undo log(回滚日志)。今天就来聊聊redo log(重做日志)、binlog(归档日志)、两阶段提交、undo log(回滚日志)。redo logredo log(重做日志)是InnoDB存储引擎独有的,它让MySQL拥有了崩溃恢复能力。比如MySQL实例挂了或宕机了,重启时,...原创 2021-09-09 15:26:42 · 468 阅读 · 0 评论 -
MySQL面试题之InnoDB对MVCC的实现
一致性非锁定读和锁定读一致性非锁定读对于一致性非锁定读(Consistent Nonlocking Reads)的实现,通常做法是加一个版本号或者时间戳字段,在更新数据的同时版本号 + 1 或者更新时间戳。查询时,将当前可见的版本号与对应记录的版本号进行比对,如果记录的版本小于可见版本,则表示该记录可见在InnoDB存储引擎中,多版本控制 (multi versioning)就是对非锁定读的实现。如果读取的行正在执行DELETE或UPDATE操作,这时读取操作不会去等待行上锁的...原创 2021-09-09 14:36:39 · 507 阅读 · 0 评论 -
MYSQL扣除余额,扣除库存的SQL
1. 需求:扣除余额,或者库存(一般先扣缓存,再扣库存, 库存扣除失败,回滚缓存,redis的incr语句),满足高并发需求2. 设计SQL示例sql, 这边以扣除余额为例(无缓存),mysql会根据id进行行锁处理,高并发下没有问题 update xxx_account set balance = balance - #{chargeCost} , day_balance = day_balance - #{ch原创 2021-05-19 16:10:55 · 2104 阅读 · 0 评论 -
Mysql百万数据扫表优化
一、大数据量分页查询方法:1、直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢,且有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3),Limit限制的是从结果集的M位置处取出N条输出,其余抛弃。//是用limit函数//取前5条数据select * from table_nam.原创 2020-11-24 10:11:49 · 2234 阅读 · 0 评论 -
MySQL建数据库字符集与排序规则设定
1.字符集说明:一般选择utf8.下面介绍一下utf8与utfmb4的区别。utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了,到http://blog.csdn.net/leelyliu/article/details/52879685看unicode编码区从1 ~ 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是...原创 2019-11-29 16:32:03 · 363 阅读 · 0 评论 -
SpringBoot集成Druid配置(yml版本)
maven 配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version>原创 2019-03-02 22:33:26 · 20834 阅读 · 3 评论 -
SpringBoot JPA中使用中如何写原生SQL
@Query(nativeQuery=true,value = "") value里写正常sql语句如果返回的是数据库对应的实体对象,那么sql的返回结果集字段别名中应该与该实体类中对应的数据库字段名一致,可以有多余字段,但不能少字段,nativeQuery代表本地数据库的sql语句上一个稍微复杂的sql, 占位符用" : ",public interface TXhCodeRepos...原创 2018-09-18 13:18:29 · 10948 阅读 · 2 评论 -
NoSql(四) 在分布式数据库中CAP原理 CAP + BASE
1: 传统的ACID是什么? A (Atomictiy[,ætə'mɪsɪti]) 原子性 C (Consistency[kən'sɪstənsi])一致性 I (Isolation) 独立性 D (Durability) 持久性2: CAP C: Consistency 强一致性 例如:数据稍微不对一点, 例如点赞数10万和10万1千的区别 A: Av...原创 2018-05-07 16:35:42 · 397 阅读 · 0 评论 -
NoSql(三) NoSql数据库的四大分类
1 :KV键值对 典型介绍 新浪: BerkeleyDB + redis 美团: redis + tair 阿里, 百度: memcache + redis2: 文档型数据库(bson格式比较多): 典型介绍 MongoDB 是一个基于分布式文件存储的数据库, 由C++ 语言编写.是一个介于关系型数据库和非关系型数据库之间的产品,是非关系数据库中功能最丰富, 最像关系数据库的.3: ...原创 2018-05-07 15:28:36 · 873 阅读 · 0 评论 -
NoSql(二) 数据模型设计(kv,bson,列族, 图形)
1 3V +3高2当下的nosql的经典应用: 当下的应用是sql和nosql的一起使用:举个例子,阿里巴巴中文网站首页: 1商品基本信息: 名称. 价格. 出厂日期, 生产厂商等 -- 存在关系型数据库 2 商品描述,详情, 评价信息(多文字类) --文档类数据库 mongDB 3 商品图片 分布式的文件系统中: 淘宝自己的TFS, Googl...原创 2018-05-07 15:07:19 · 2675 阅读 · 0 评论 -
NoSql(一)入门概述,数据库发展史
1互联网时代背景下大机遇,为什么用nosql1.1 单击mysql的美好年代 那时候网站访问量不大, 用单个数据库完全可以应付.动态交互不多 上述架构下,数据库的瓶颈? 1) 数据量的总大小,一个机器总会放不下 2) 数据的索引(B+tree)一个机器内存放不下时, 3) 访问量(读写混合)一个实例不能承受1.2 Memcached(缓存)+my...原创 2018-05-07 13:43:21 · 2075 阅读 · 0 评论 -
MySQL面试题(六)数据库的分库分表原理详解
上一篇文章介绍了MySQL的查询优化考题,本文将介绍MySQL的高可扩展和高可用。首先看一道真题简述MySQL分表操作和分区操作的工作原理,分别说说分区和分表的使用场景和各自优缺点。考点分析分区表的原理分库分表的原理延伸:MySQL的复制原理及负载均衡分区表的工作原理对用户而言,分区表是一个独立的逻辑表,但是底层MySQL将其分成了多个物理子表,这对用户来说是透明的,每一个分区表都会使用一个独立的...原创 2018-04-27 17:38:25 · 12051 阅读 · 0 评论 -
MySQL数据库中的Date,DateTime,TimeStamp和Time类型 (TimeStamp加实战)
类型定义DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(“支持”意味着尽管更早的值可能工作,但不能保证他们可以。)DATE类型用在你仅需要日期值时,没有时间部分。MySQL检索并且以'YYYY-M...原创 2018-04-25 14:43:11 · 1906 阅读 · 0 评论 -
MySQL面试题(二)之数据类型,引擎,事务等
上一篇文章介绍了关于MySQL数据库基础题的一部分内容,很多朋友表示看着不过瘾,因此本文将更全面的把MySQL数据库基础题一并介绍完。除了基础题部分,小编计划收集整理的MySQL面试题还包括如下知识点或题型:MySQL高性能索引SQL语句MySQL查询优化MySQL高扩展高可用MySQL安全性为了避免收藏不看,让大家更有耐心看下去,印象更深刻些,小编将分五次分别发布这些内容,加上本文一共6篇,欢迎...原创 2018-04-25 16:39:40 · 797 阅读 · 0 评论 -
MySQL面试题(三)之MySQL高性能索引
上一篇文章介绍了关于MySQL数据库基础题,首先,谢谢大家的持续关注,您的关注是小编最大的动力。本文将介绍MySQL高性能索引。本文篇幅稍长,小编鼓励大家坚持看完,一定会有所收获。一 . 简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响?知识点分析此真题主要考察的是MySQL索引的基础和类型,由此延伸出的知识点还包括如下内容:MySQL索引的创建原则MySQL索...原创 2018-04-25 18:54:18 · 1950 阅读 · 0 评论 -
时间复杂度(数据库索引B-Tree树实战)
时间复杂度是一个函数,它定量描述了该算法的运行时间。常见的时间复杂度有以下几种。1,log(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!1指的是常数。即,无论算法的输入n是多大,都不会影响到算法的运行时间。这种是最优的算法。而n!(阶乘)是非常差的算法。当n变大时,算法所需的时间是不可接受的。用通俗的话来描述,我们假设n=1所需的时间为1秒。那么当n = 10,000时...原创 2018-03-01 10:32:56 · 21065 阅读 · 3 评论 -
数据库索引创建,查询
索引的详解索引的创建 主键索引的创建 主键索引的创建有两种方式, 1 在创建表的时候, 直接在指定列或者某几列为主键 create table aaa(id int primary key , name varchar(32)) 2添加表后, 对指定列创建索引...原创 2018-04-26 10:55:14 · 6229 阅读 · 0 评论 -
MySQL数据库索引的原理(B-Tree)
我就不画图了, 首先, 先试想一下, 有个图书馆, 里面有10万本书, 有一本书叫"金瓶梅",有一天小明去图书馆想借一本书,就是金瓶梅,如果直接去找, 从10万本书里找, 一本本找过去, 估计也要个几年, 几年后估计小明也不想看金瓶梅了吧. 当然现实中图书馆肯定不能这么找书了, 一般图书馆会分类, 例如: 科学类: 物理书, 化学书..... ...原创 2018-04-26 16:50:26 · 661 阅读 · 0 评论 -
MySQL语句分类(详细划分)
Sql语句的分类详细总结一、 数据定义语言DDL(Data Ddefinition Language)SQL数据定义语言主要用来定义逻辑结构,包括定义基表,视图和索引。1、 定义定义表Create table<表名> (<列名字><数据类型>[列级完整性约束条件] , ………….);定义视图 视图:从一个或者几个基表或者视图导出的表(结果集),是一个...转载 2018-04-26 17:20:29 · 6703 阅读 · 0 评论 -
MySQL面试题(四)
上一篇文章介绍了MySQL高性能索引,本文将介绍MySQL的SQL语句编写。首先看一道真题有A(id,sex,par,c1,c2),B(id,age,c1,c2)两张表,其中A.id与B.id关联,现在要求写出一条SQL语句,将B中age>50的记录的c1,c2更新到A表中同一记录中的c1,c2字段中考点分析这道题主要考察的是MySQL的关联UPDATE语句延伸考点:MySQL的关联查询语句...原创 2018-04-27 14:24:08 · 700 阅读 · 0 评论 -
MySQL面试题(五)SQL 优化
上一篇文章介绍了MySQL SQL语句编写考题,本文将介绍MySQL的查询优化考题。首先看一道真题请简述项目中优化SQL语句执行效率的方法,从哪些方面,SQL语句性能如何分析?考点分析:这道题主要考察的是查找分析SQL语句查询速度慢的方法延伸考点:优化查询过程中的数据访问优化长难的查询语句优化特定类型的查询语句如何查找查询速度慢的原因记录慢查询日志分析查询日志,不要直接打开慢查询日志进行分析,这样...原创 2018-04-27 14:37:09 · 608 阅读 · 0 评论 -
MySQL面试题(一)之 数据类型详解
问题1:char、varchar的区别是什么?答:varchar是变长而char的长度是固定的。提示:如果你的内容是固定大小的,你会得到更好的性能。问题2: TRUNCATE和DELETE的区别是什么?答:DELETE命令从一个表中删除某一行,或多行,TRUNCATE命令永久地从表中删除每一行。问题3:什么是触发器,MySQL中都有哪些触发器?答:触发器是指一段代码,当触发某个事件时,自动执行这些...原创 2018-04-25 10:21:59 · 735 阅读 · 0 评论