数据库(Database)
文章平均质量分 53
白杨树
这个作者很懒,什么都没留下…
展开
-
SQL中UNPIVOT是什么
比如你有一个table,你想把列转换成行,就可以使用unpivot。还是有点抽象,具体什么意思呢?比如说有一个table stu_score如下:Name, Math, Chinesezhc, 99, 95xiaoy, 89, 100xiaot, 98, 60你想要把它转化成这样:Name, Subject, Scorezhc, Math, 99zhc, Chinese, 95xiaoy, Math, 89xiaoy, Chinese, 100xiaot,原创 2020-12-17 02:25:16 · 6394 阅读 · 1 评论 -
三分钟配好MySQL主从复制
一般带有“多少天搞定什么”“这种标题都是哗众取众,吸引眼球。今天我也把我配置的MySQL主从复制最小可work的集合记录下来。1主MySQL,我们把它叫做master,在my.cnf中打开binlog和定义server id,然后重启。vi /etc/my.cnfserver-id = 100log_bin = mysql-binservice mysql restart原创 2016-08-04 18:17:28 · 798 阅读 · 0 评论 -
三分钟配好MySQL主从复制 - 问题集锦
9 TroubleShooting9.1 出现slave连不上master的情况,也就是IO线程一直处于connecting状态,由于现实环境中各种防火墙,各种限制等,所以你最好在你的slave机器上用你的replication账号真正的登录一下master试一下,看是否能连上。mysql -ubackup -p -h master_host_name9.2 Got fatal err原创 2016-08-04 18:20:29 · 2151 阅读 · 1 评论 -
MySQL InnoDB 备份与恢复七种方式
有几种方式:1 mysqldump, 这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM。备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢复的时候直接导入即可。2 copy file, 我们知道InnoDB底层存储的时候会将数据和元信息存在下列文件中:ibdata*, *.ibd, *.frm, *.ib_logfile*,所原创 2016-08-04 18:02:37 · 13737 阅读 · 0 评论 -
三分钟理清MySQL复制逻辑
MySQL的复制策略是异步的,单向的,Master->Slave,下面是MySQL复制的整体逻辑:1 所有对Master的更新操作比如insert,update,delete等都会被写到binary log里。2 Slave上的IO线程向Master上的IO线程索要bin log, 存储到Slave的bin log叫做relay log.3 Slave行的Processing线程执行中原创 2016-08-04 18:04:38 · 1216 阅读 · 0 评论 -
MongoDB简介
MongoDB是一种NoSQL,面向文档存储,文档是MongoDB的一种特别重要的概念,你可以想象成是一种Map或者字典,散列。如果想要对比的话,文档就相当于关系型数据库的行,大小上线是4MB。集合相当于表。所有的文档都有一个内置的_id键作为唯一标识符。它的类型可以是任意的,但默认是ObjectId。ObjectId是12字节,每个字节用两位十六进制表示,所以就是一个二十四位的字符串原创 2017-01-04 14:12:53 · 627 阅读 · 0 评论 -
MongoDB的地理空间索引
db.users.ensureIndex({"position" : "2d"})MongoDb就会在position这个键上建立二维的地理索引。position的值必须是某种形式的一对值,一个包含两个元素的数组或者包含两个键的内嵌文档,比如:{"position" : [34, 67]}{"position" : {"latitude" : 33, "longitude" : 67}原创 2017-01-05 14:44:03 · 972 阅读 · 0 评论 -
SQL中LAG和OVER函数的意义
做BI查询时,有时会需要看上一条纪录的情况,那么需要怎么做呢?现代的数据仓库系统或者RDBMS系统一般都会提供一个一个函数来供你分析上几条或下几条的数据。比如LAG和LEAD。LAG( shorten_url IGNORE NULLS ) OVER ( PARTITION BY hit_day, session_id ORDER BY click_id ) Oracle从8.1.6开始提供分析函...原创 2018-04-04 17:00:21 · 47357 阅读 · 0 评论 -
SQL REGEXP_SUBSTR的用法
REGEXP_SUBSTR顾名思义就是根据正则表达式来进行字符串替换。比如下面这个例子:WHERE PROMO_ID = REGEXP_SUBSTR('{abc}','\{([^{}]*)\}',1,1,'i') 第一个字段是source str, 表示需要进行处理的字符串。第二个字段是pattern.第三个字段是position, 表示起始位置。第四个字段是occurenc...原创 2018-08-16 11:58:20 · 14748 阅读 · 0 评论 -
SQL 只返回前10个纪录
如果是MySQL的话可以使用limit,像这样:SELECT *FROM tableWHERE id > 10ORDER BY idLIMIT 10,5第一个参数表示初始纪录行的偏移量,第二个字段表示个数,比如上述例子只会拿到第11行到15行。 如果是Oracle的话可以使用rownum,像这样:SELECT *FROM tableWHERE id...原创 2018-08-17 10:29:05 · 9451 阅读 · 0 评论 -
SQL - 分组排序
SELECT *,row_number() over(partition by col1 order by col2) as rn1这是什么意思呢?简单的说就是进行分组排序并编号的过程。row_number()很好理解,给每条记录分配一个行号,从1开始,连续的。那么over (partition by col1 order by col2 desc) 是什么意思呢?就是先按照col1进...原创 2018-12-03 17:21:29 · 1254 阅读 · 0 评论 -
几种比较好用的连接PostgreSQL的客户端
1 navicat是类似于MySQL workbench的SQL客户端,可以支持PostgreSQL,需要购买,但是有试用版。http://www.navicat.com.cn/download/navicat-for-postgresql, 可以下载安装相应的版本,然后创建连接即可。http://www.navicat.com.cn/ 2 pgAdmin, https://www...原创 2019-02-26 18:23:54 · 94648 阅读 · 2 评论 -
什么是liquibase
liquibase是开源的数据库跟踪,管理工具,比如数据库表的更改变化,回滚等。所有的数据库变化比如表增加列都会存储到XML,JSON或者SQL中。比较适合多团队写作开发,用来共享资源。LIquibase会自动的创建DatabaseChangeLog数据库表和DatabaseChangeLogLock表和里边的每次更改记录。liquibase现在支持10种常用的数据库类型,比如说MySQL...原创 2019-05-02 01:59:21 · 3535 阅读 · 0 评论 -
JOOQ是什么?
JOOQ代表Java Object OrientedQuery, 可以把你的数据库模型的基本信息,比如表名,字段名生成相应的Java类,这些是自动化的,提高了效率,也避免了手动写POJO代码产生的错误。这和一些ORM比如Hibernate映射框架有些不同,比如Hibernate是帮你隐藏了SQL实现。但JOOQ是直接帮你生成好相应的Java类,然后你也可以用这些Java类和数据库打交道。...原创 2019-05-02 05:51:10 · 2203 阅读 · 0 评论 -
SQL中UNNEST 是什么
如果想要将ARRAY转换为一组行,即平展操作,可以使用UNNEST运算符。UNNEST获取一个ARRAY,然后赴安徽一个表,表中的每一行都是该ARRAY中的元素。我们来看一个例子:比如你有一个表zhc,第一列是id,第二列是ARRAY,像这样:id, numbers1, [0,2,2,5]2, [3,6]执行下列UNNEST操作:select id, flattened...原创 2019-07-09 13:33:29 · 36802 阅读 · 3 评论 -
MySQL两种存储引擎MyISAM于InnoDB对比
MySQL常用的两种存储引擎一个是MyISAM,另一个是InnoDB。两种存储引擎各有各的特点。下面给出一些对比,供你参考。首先说一下这两者之间功能上的一个比较重要的差异,MyISAM的锁粒度是表级别(table level locking),而InnoDB的锁粒度是可以到行级别(row level locking)。下一个比较重要的差异是MyISAM不完全支持外键完整性约束和事务,这原创 2016-07-18 16:37:35 · 898 阅读 · 0 评论 -
MySQL利用frm和idb文件进行数据恢复
我们知道MySQL中如果用的是MYISAM数据引擎,那么数据很好恢复,只要将相应.frm, .MYD, .MYI文件拷贝过去即可。但是如果是innodb的话,如果开启innodb_file_per_table=1,则每一个数据表都是一个单独的文件,比如User表,则会建立User.frm和User.ibd.那么直接拷贝这两个文件到新的MySQL数据目录下可以吗,一般来说是不行的,那么什原创 2016-07-13 18:43:48 · 36793 阅读 · 2 评论 -
MySQL bigint(20)是什么意思?
MySQL中我们建表的时候,类型可以用bigint(20), 这是什么意思呢?首先我们看bigint, MySQL的整型类型有这样几种:类型 占用字节tinyint 1smallint 2mediumint 3int 4bigint 8这是决定存储需要占用多少字节,那么后边的数字(M)代表什么原创 2016-02-21 10:47:53 · 76746 阅读 · 1 评论 -
衡量易操作数据存储(SOD)可扩展性能的十大准则(下)
这篇文章来自作者对Michael Stonebraker和Rick Cattell两位作者所著《10 Rules for scalable Performance in ‘simple operation’ Datastores 》 Communications of The ACM | June 2011 | VOL. 54 | No. 6 的翻译和理解,以飨读者,分翻译 2012-02-25 10:05:53 · 3008 阅读 · 0 评论 -
衡量易操作数据存储(SOD)可扩展性能的十大准则(中)
这篇文章来自作者对Michael Stonebraker和Rick Cattell两位作者所著《10 Rules for scalable Performance in ‘simple operation’ Datastores 》 Communications of The ACM | June 2011 | VOL. 54 | No. 6 的翻译和理解,以飨读者,分为上翻译 2011-11-29 09:33:52 · 2863 阅读 · 0 评论 -
衡量易操作数据存储(SOD)可扩展性能的十大准则(上)
这篇文章来自作者对Michael Stonebraker和Rick Cattell两位作者所著《10 Rules for scalable Performance in ‘simple operation’ Datastores 》 Communications of The ACM | June 2011 | VOL. 54 | No. 6 的翻译和理解,以飨读者,分翻译 2011-11-24 17:16:13 · 3801 阅读 · 0 评论 -
MySQL Workbench 不能删除数据等问题(“Error Code: 1175”) 的解决方法
本文出自:http://blog.csdn.net/hongchangfirst当用MySQL Workbench进行数据库的批量更新时,执行一个语句会碰到以下错误提示:Error Code: 1175You are using safe...without a WHERE that uses a KEY column因为是MySQL Workbench的默认的安全原创 2012-04-28 18:20:22 · 17076 阅读 · 2 评论 -
连接不上sql server
出现, 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)我们先看provider是命名管道,我们得开启named pipes。tcp/ip端口必原创 2013-01-28 11:25:47 · 2196 阅读 · 0 评论 -
MySQL性能研究之插入优化
本文出自:http://blog.csdn.net/hongchangfirst 序言 这篇文章研究了在海量数据需求下,MySQL数据库的承载能力。如果读者想尽快的获得帮助,而不想纠于细节,可以只看第一章;如果读者想具体了解结论是怎么得到的,是通过什么方式,可以继续看第二章;当然,所有的实验环境和部分SQL代码在第三章里指出,这一章读者可以快速浏览,以达到管中窥豹的效果。如有原创 2011-11-08 10:47:07 · 5652 阅读 · 2 评论 -
MySQL忘记root密码怎么办
开启mysql服务的时候使用特殊模式开启mysqld-nt --skip-grant-tables 启动完毕后,我们使用root链接,但是不用输入密码,使用空密码的方式登录MySQLmysql -uroot -p然后我们直接重置root的密码为123update mysql.user set password=PASSWORD('123') where User='ro原创 2013-12-21 22:46:06 · 2635 阅读 · 0 评论 -
一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。原创 2014-07-08 14:06:58 · 282007 阅读 · 39 评论 -
Oracle sql union all
sql union all这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 sql union all和 sql union不同之处在于 sql union all会将每一次符合条件的数据列出来,无论数据库有无重复。用法也很简单:SELECT top 50 FROM StoreData_200903UNION ALLSELECT top 50 FROM StoreData原创 2015-03-02 10:30:36 · 1916 阅读 · 0 评论