数据库
馥钰
好人一生平安!道阻且长,行则将至!
选择一条自己喜欢的路,向前走,莫回头!
天道酬勤!
学海无涯,温故而知新!
线下不努力,线上出问题!线上出问题,努力全白费!
分布式系统、高并发、大流量,分布式计算、分布式存储!
展开
-
Hive与MySQL的区别
Hive与MySQL的区别MySQL逻辑架构图:Hive的架构图:两者的比较:Hive采用了类SQL的查询语言HQL(hive query language)。除了HQL之外,其余无任何相似的地方。Hive是为了数据仓库设计的。存储位置:Hive在Hadoop上;Mysql将数据存储在设备或本地系统中;数据更新:Hive不支持数据的改写和添加,是在加载的时候就已经确定好了;数据库可以CRUD;索引:Hive无索引,每次扫描所有数据,底层是MR,并行计算,适用于大数据量;MySQL有索引,适转载 2022-03-04 18:18:38 · 836 阅读 · 0 评论 -
HBase数据模型介绍
https://www.jianshu.com/p/5ce9b72e3341HBase 介绍HBase的数据的存储结构不同于传统的关系型数据库,HBase是一种结构松散,分布式,多维度有序映射的持久化存储系统,它索引的依据是行键、列键和时间戳。HBase可以被看作键值存储数据库、面向列族的数据库,外文原文地址请点击。HBase 数据存储模型基础HBase数据存储结构中主要包括:表、行、列族、列限定符、单元格和时间戳,下面将对HBase的数据存储模型的概念一一解释:表: 表的作用将存储在HB转载 2020-12-22 16:22:36 · 1002 阅读 · 0 评论 -
一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。(先拿锁,类似于synchronized)乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去...转载 2017-08-12 15:32:25 · 1035 阅读 · 0 评论 -
mysql悲观锁与乐观锁
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下:悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了 加转载 2017-08-12 16:23:25 · 270 阅读 · 0 评论 -
【MYSQL】查询不区分大小写
MySQL在默认的情况下查询是不区分大小写的,例如:mysql> create table t1( -> name varchar(10));Query OK, 0 rows affected (0.09 sec)mysql> insert into t1 values('you'),('You'),('YOU');Query OK, 3 rows affec转载 2017-09-01 17:47:38 · 329 阅读 · 0 评论 -
MySQL详解--锁
MySQL详解--锁锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制的特点,常见的锁转载 2018-01-17 17:33:37 · 342 阅读 · 0 评论 -
MySQL 加锁处理分析
MySQL 加锁处理分析目录 1背景 11.1 MVCC:Snapshot Read vs Current Read 21.2 Cluster Index:聚簇索引 31.3 2PL:Two-Phase Locking 31.4 Isolation Level 42一条简单SQL的加锁实现分析 52.1 组合一:id主键+RC转载 2018-01-18 15:05:43 · 205 阅读 · 0 评论 -
SQL性能优化(不断总结)
http://blog.csdn.net/wwzuizz/article/details/546020581.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用.解决办法:其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下: a、修改前台程序——把查询条件的供应商名称一栏由...转载 2018-02-09 14:50:43 · 207 阅读 · 0 评论 -
深入理解Mysql——schema设计与大表alter操作
http://blog.csdn.net/lemon89/article/details/76651189相关文章: 深入理解Mysql——高性能索引与高性能SQL 深入理解Mysql——锁、事务与并发控制(辟谣) 深入理解Mysql——schema设计与大表alter操作 mysql explain-output 译文数据类型整数与小数类型整数类型有如转载 2018-02-07 12:00:47 · 262 阅读 · 0 评论 -
步步深入:MySQL架构总览->查询执行流程->SQL解析顺序
https://www.2cto.com/database/201512/453280.html前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览: 架构最好看图,再配上必要转载 2018-02-07 15:22:51 · 235 阅读 · 0 评论 -
MySQL优化的奇技淫巧之STRAIGHT_JOIN
https://huoding.com/2013/06/04/261最近没怎么搞SQL优化,碰巧数据库被慢查询搞挂了,于是拿来练练手。问题通过「SHOW FULL PROCESSLIST」语句很容易就能查到问题SQL,如下:SELECT post.*FROM postINNER JOIN post_tag ON post.id = post_tag.post_id转载 2018-02-07 15:47:32 · 263 阅读 · 0 评论 -
MySQL索引与Index Condition Pushdown
http://blog.codinglabs.org/articles/index-condition-pushdown.html大约在两年前,我写了一篇关于MySQL索引的文章。最近有同学在文章的评论中对文章的内容提出质疑,质疑主要集中在联合索引的使用方式上。在那篇文章中,我说明联合索引是将各个索引字段做字符串连接后作为key,使用时将整体做前缀匹配。而这名同学在这个页面找到了如下一转载 2018-02-07 17:01:45 · 200 阅读 · 0 评论 -
案例:MySQL优化器如何选择索引和JOIN顺序
http://www.orczhou.com/index.php/2013/04/how-mysql-choose-index-in-a-join/本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序。表结构和数据准备参考本文最后部分"测试环境"。这里主要介绍MySQL优化器的主要执行流程,而不是介绍一个优化器的各个组件(这是另一个话题)。目录 [hide]1.转载 2018-02-07 17:25:57 · 784 阅读 · 0 评论 -
深入理解Mysql——高性能索引与高性能SQL
http://blog.csdn.net/lemon89/article/details/50193891相关文章: 深入理解Mysql——高性能索引与高性能SQL 深入理解Mysql——锁、事务与并发控制(辟谣) 深入理解Mysql——schema设计与大表alter操作 mysql explain-output 译文从理解磁盘IO开始主轴让磁盘盘片转动,然后传动手臂可伸展让读取头在盘片上进行读...转载 2018-02-08 10:16:47 · 376 阅读 · 0 评论 -
MySQL索引原理及慢查询优化
https://tech.meituan.com/mysql-index.htmlMySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10...转载 2018-02-08 16:31:58 · 200 阅读 · 0 评论 -
如何防止sql注入
转载:http://www.iteye.com/topic/617072 SQL注入攻击的总体思路:发现SQL注入位置;判断服务器类型和后台数据库类型;确定可执行情况对于有些攻击者而言,一般会采取sql注入法。下面我也谈一下自己关于sql注入法的感悟。 注入法:从理论上说,认证网页中会有型如:select * from admin where username='转载 2017-08-12 15:26:45 · 352 阅读 · 0 评论 -
mysql语句优化总结(一)
Sql语句优化和索引1.Innerjoin和左连接,右连接,子查询A. inner join内连接也叫等值连接是,left/rightjoin是外连接。SELECT A.id,A.name,B.id,B.name FROM A LEFT JOIN B ON A.id =B.id;SELECT A.id,A.name,B.id,B.name FROM A RIGHT JOIN转载 2017-08-11 18:40:29 · 288 阅读 · 0 评论 -
mysql优化limit查询语句的5个方法
这篇文章主要介绍了mysql优化limit查询语句的5个方法,它们分别是子查询优化法、倒排表优化法、反向查找优化法、limit限制优化法和只查索引法,需要的朋友可以参考下mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,mysql明显性能下降1.子查询优化法先找出第一条数据,然后大于等于这条数据的id就是要获取的数...转载 2017-08-11 18:38:43 · 643 阅读 · 0 评论 -
SQL SERVER 2005的递归查询
SQL SERVER 2005的递归查询 项目中有用户组表UserGroup如下: 其中PID表示当前组的上级组表数据如下: 现在想查询出顶级组[没有上级组叫顶级组]A1组的所有子孙组ID,SQL如下:[sql] www.2cto.com --查询子节点 with RTD1 as( select i转载 2014-10-10 15:49:35 · 495 阅读 · 0 评论 -
SQL递归查询(SqlServer/ORACLE递归查询)[语法差异分析]
http://www.cnblogs.com/zwxly/archive/2012/03/13/2393859.html?ADUIN=2191176072&ADSESSION=1412901730&ADTAG=CLIENT.QQ.5329_.0&ADPUBNO=26349在 SQLSERVER2005以后,mssql开始有了递归查询的方法了。比较起最开始写存储过程或者写function的方转载 2014-10-10 15:51:46 · 666 阅读 · 0 评论 -
Mysql存储过程——多结果集返回与java获取
存储过程经常需要返回多个结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结 果 集。这一点 Mysql 相对比较方便,如下代码即可实现输出两个结果集: Sql code 2-1:[c-sharp] view plain copyCREATE PROCEDURE test_proc_multi_selec转载 2016-08-29 11:43:54 · 3710 阅读 · 0 评论 -
MongoDB文档(Document)全局唯一ID的设计思路
MongoDB中数据的基本单元称为文档(Document)。文档是MongoDB的核心概念,多个键极其关联的值有序的放置在一起便是文档。在一个特定集合内部,需要唯一的标识文档。因此MongoDB中存储的文档都由一个"_id"键,用于完成此功能。这个键的值可以是任意类型的,默认试ObjectId对象。ObjectId对象的生成思路是本文的主题,也是很多分布式系统可以借鉴的思路。为了考虑分布式转载 2016-09-01 10:59:46 · 820 阅读 · 0 评论 -
分布式系统事务一致性解决方案
本文首发于InfoQ,版权所有,请勿转载!!!http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency开篇在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数...转载 2017-08-16 17:02:38 · 312 阅读 · 0 评论 -
sql优化
大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿!SQL语句: 是对数据库(数据)进行操作的惟一途径;消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;可以有不同的写法;易学,难原创 2014-06-02 16:11:18 · 613 阅读 · 0 评论 -
ORACLE 多表关联 UPDATE 语句
为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中,SQL 代码--客户资料表 create table customers( customer_id number(8) not null,-- 客户标示 city_name varchar2(10) not null, -- 所在城市customer_type char(2)转载 2014-06-25 10:20:29 · 582 阅读 · 0 评论 -
sql update多表关联
一、建立测试表CREATE TABLE t_user (ID int identity PRIMARY KEY,UserID varchar(50) not null,UserName varchar(50) null,deptID int not null,phone varchar(50) null,fax varchar(50) null)CREATE T转载 2014-06-25 10:16:03 · 1167 阅读 · 0 评论 -
UPDATE多表更新
在开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的.在本例中: 我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当 la转载 2014-06-25 10:04:17 · 680 阅读 · 0 评论 -
SQL Server之字符串函数
以下所有例子均Studnet表为例: 计算字符串长度len()用来计算字符串的长度select sname ,len(sname) from student字符串转换为大、小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写select lower('I AM A STUDENT !')select upper(转载 2014-07-03 09:53:44 · 664 阅读 · 0 评论 -
数据库SQL优化大总结之 百万级数据库优化方案
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.转载 2017-08-11 18:17:15 · 210 阅读 · 0 评论 -
MySql的优化步骤
MySql优化的一般步骤:1.通过show status 命令了解各种sql的执行效率 SHOW STATUS提供msyql服务器的状态信息 一般情况下,我们只需要了解以”Com”开头的指令 show session status like ‘Com%’:显示当前的连接的统计结果 show global status like ‘Com%’ :显示自数据库上次启动至今的转载 2017-08-11 18:29:03 · 288 阅读 · 0 评论 -
Mysql SQL优化&执行计划
SQL优化准则禁用select *使用select count(*) 统计行数尽量少运算尽量避免全表扫描,如果可以,在过滤列建立索引尽量避免在where子句对字段进行null判断尽量避免在where子句使用!= 或者<>尽量避免在where子句使用or连接尽量避免对字段进行表达式计算尽量避免对字段进行函数操作尽量避免使用不是复合索引的前缀列进行过滤连接尽量少排序,如果可以,转载 2017-08-11 18:31:12 · 334 阅读 · 0 评论 -
mysql数据库sql优化原则(经验总结)
这里的原则 只是针对mysql数据库,其他的数据库 某些是殊途同归,某些还是存在差异。我总结的也是mysql普遍的规则,对于某些特殊情况得特殊对待。在构造sql语句的时候养成良好的习惯一、前提这里的原则只是针对MySQL数据库,其他的数据库某些是殊途同归,某些还是存在差异。我总结的也是MySQL普遍的规则,对于某些特殊情况得特殊对待。在构造SQL语句的时候要养成良好的习惯。转载 2017-08-11 18:36:31 · 566 阅读 · 0 评论 -
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'stulnfo'中的标识列指定显式值。
插入数据时,自增长列是系统自动处理,不需要你来指定数值,你也指定不了。只有将IDENTITY_INSERT 为 ON 时插入数据时,自增长列你才可以指定一个值比如我有一个表PZ,有如下列XH,ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY其中XH是自增长,正常插入数据时insert PZ (ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ原创 2014-06-12 17:41:24 · 13589 阅读 · 0 评论