开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

【BBED】BBED模拟并修复ORA-08102错误

【BBED】BBED模拟并修复ORA-08102错误
小麦苗 发布于 15小时前 阅读 9

尊重开源,且用且珍惜

——致开源多模型数据库ArangoDB 在中国市场的“山寨友”
GermanWifi 发布于 4天前 阅读 397 评论 7 点赞 3

[ElasticSearch ]2轻量级搜索

# 概述 ES是一个搜索引擎,我们之所以要使用它就是为了借助它快速构建全文索引,帮助我们快速检索数据。 本文接着上篇文章[ElasticSearch1初步使用](http://www.jianshu.com/p/b338b37dd5e2)继续来通过blogs索引实例说明如何简单的借助ES实现轻量级搜索功能。 # 问题 本文主要以应用ES为基本问题,主要探索ES通过GET方法进行搜索的使用方法。在实验的示例中本文也会简要的描述ES相关的理论知识。 如何使用索引进行搜索,对搜索结果进行分页,并使用简单的条件来过滤搜过结果是本文需要探讨的问题。 # 方法 本文采用对照RDBMS中SELECT功能的方法来描述ES中的轻量级搜索的概念,从总体上来讲,在ES中搜索数据其实和在RDBMS中SELECT数据是一样的,都可以指定搜索(查询)条件,都可以设置返回字段,也都可以进行一定的聚合运算。只不过ES搜索引擎使用全文搜索得到的结果会根据内容与搜索关键字的匹配程度给与每个结果一个权重,这个权重就作为搜索结果排序的依据。而RDBMS完全是依照ORDER BY子句中指定的排序规则进行排序的。 说明: ES REST API所提供的完全在URL中描述参数的接口就是轻量级搜索接口,换句话说轻量级搜索接口都是使用GET方法的。所以文中示例使用的地址和API...
为为02 发布于 5天前 阅读 327

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

浅析开源数据库MySQL架构

数据库是所有应用系统的核心,故保证数据库稳定、高效、安全地运行是所有企业日常工作的重中之重。数据库系统一旦出现问题无法提供服务,有可能导致整个系统都无法继续工作。所以,一个成功的数据库架构在高可用设计方面也是需要充分考虑的。下面就为大家介绍一下如何构建一个高可用的MySQL数据库系统。 做过DBA或者是运维的同学都应该知道,任何设备或服务,存在单点就会带来巨大风险,因为这台物理机一旦宕机或服务模块crash,若在短时间内无法找到替换的设备,势必会影响整个应用系统。因而如何保证不出现单点就是我们的重要工作,使用MySQL高可用方案可以很好地解决这个问题,一般有以下几种: 一、利用MySQL自身的Replication来实现高可用 MySQL自带的Replication就是我们常说的主从复制(AB复制),通过对主服务器做一个从机,在主服务器宕机的情况下快速地将业务切换到从机上,保证应用的正常使用。利用AB复制做高可用方案也分为几种不同的架构: 1、常规的MASTER---SLAVE解决方案 普通的MASTER---SLAVE是目前国内外大多数中小型公司最常用的一种架构方案,主要的好处就是简单、使用设备较少(成本较低)、维护方便。这种架构能解决单点的问题,而且还能在很大程度上...
illy安智 发布于 1周前 阅读 1927 评论 5 点赞 1

PostgreSQL hook机制编写插件限制超级用户权限

PG版本:PostgreSQL 9.6.5 由于版本不同代码会有所差别,本例在PostgreSQL 9.6.5编写而来,其他版本未经测试(PostgreSQL 10beta3测试不能直接用)。 1.安装插件前 sun@sun:~/PG/PG9.6.5/bin$ ./createdb testdb sun@sun:~/PG/PG9.6.5/bin$ ./createuser testuser sun@sun:~/PG/PG9.6.5/bin$ ./psql -U testuser testdb psql (9.6.5) Type "help" for help. testdb=> create table testtable(a int); CREATE TABLE testdb=> create table testtable2(a int); CREATE TABLE testdb=> \q sun@sun:~/PG/PG9.6.5/bin$ ./psql -U sun testdb psql (9.6.5) Type "help" for help. testdb=# \d List of relations Schema | Name | Type | Owner --------+------------+-------+---------- public | testtable | table | testuser public | testtable2 | table | testuser (2 rows) testdb=# drop table testtable2; DROP TABLE testdb=# \d List of relations Schema | Name | Type | Owner --------+-----------+-------+---------- public | testtable | table | testuser (1 row) 2.安装插件后 sun@sun:~/PG/PG9.6.5/bin$ ...
SunBeau 发布于 1周前 阅读 179 评论 1 点赞 1

pgBadger(PostgreSQL日志分析工具)

摘要 之前曾介绍过PostgreSQL的日志审计,这会将执行的SQL输出到服务日志(pg_log),势必会带来性能问题,真正的问题是,这些记录对我们有多少帮助?所以我们来看一下如何使用增加的日志记录来做一些有用的事情。 pg_stat_statements 不仅输出SQL语句,还可以输出执行时间等,通过分析此服务器日志,可以知道执行什么样的SQL,以及缩小范围找到哪些SQL有可能出现性能问题。 SQL日志分析工具pgBadger pgBadger 主页:home 下载地址:download pgBadger是在Perl中创建的一个脚本,与PHP脚本中开发的名为pgFouine的程序具有相同的功能。 在命令行上指定并执行服务器日志时,会生成一个将服务器日志分析为HTML文件的报告。 此外,它不仅收集SQL,还收集服务器日志中的错误日志等。 环境 CentOS 6.9、PostgreSQL9.5.9、pgBadger 9.2 安装pgBadger tar zxvf pgbadger-9.2.tar.gz cd pgbadger-9.2 [root@localhost pgbadger-9.2]# ll total 1416 drwxr-xr-x. 8 root root 4096 Sep 11 01:13 blib -rw-rw-r--. 1 root root 94609 Jul 28 07:45 ChangeLog -rw-rw-r--. 1 root root 347 Jul 28 07:45 CONTRIBUTING.md drwxrwxr-x. 2 root root 4096 Jul 28 07:45 doc -...
yonj1e 发布于 2周前 阅读 434 点赞 1

mysql数据表存储引擎类型及特性

数据表类型(存储引擎) 数据库引擎用于存储、处理和保护数据的核心服务,利用数据库引擎可控制访问权限并快速处理事务,利用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库,包括创建用于存储数据的表和用于查看、管理、保护数据安全的数据库对象(索引、视图、存储过程)。 常见引擎比对 特性 Myisam InnoDB Memory BDB Archive 存储限制 无限制 64TB 有 没有 没有 事务安全 - 支持 - 支持 - 锁机制 表锁 行锁 表锁 页锁 行锁 B树索引 支持 支持 支持 支持 - 哈希索引 - 支持 支持 - - 全文索引 支持 - - - - 集群索引 - 支持 - - - 数据缓存 - 支持 支持 - - 索引缓存 支持 支持 支持 - - 数据压缩 支持 - - - 支持 空间使用 低 高 N/A 低 非常低 内存使用 低 高 中 低 低 批量插入速度 高 低 高 高 非常高 外键支持 - 支持 - - - 各引擎特点 Myisam mysql默认存储引擎,在磁盘上存储成三个文件.frm(存储表定义).MYD(MYData存储数据)。MYI(MYIndex存储索引); 没有事务支持,不支持行锁外键,因此当insert、update会锁定整个表,效率会低一些,MyIASM中存储了行数,如果表的读操作远大于写且不需要事务,MyISAM优选。 索引 MyISAM引擎索引结构为B+Tree,...
qinwei 发布于 2周前 阅读 231 评论 3

如何编写更好的SQL查询:终极指南-第二部分

上一篇文章中,我们学习了 SQL 查询是如何执行的以及在编写 SQL 查询语句时需要注意的地方。 下面,我进一步学习查询方法以及查询优化。   基于集合和程序的方法进行查询 反向模型中隐含的事实是,建立查询时基于集合和程序的方法之间存在着不同。 查询的程序方法是一种非常类似于编程的方法:你告诉系统需要做些什么以及如何做。例如上一篇文章中的示例,通过执行一个函数然后调用另一个函数来查询数据库,或者使用包含循环、条件和用户定义函数(UDF)的逻辑方式来获得最终查询结果。你会发现通过这种方式,一直在请求一层一层中数据的子集。这种方法也经常被称为逐步或逐行查询。 另一种是基于集合的方法,只需指定需要执行的操作。使用这种方法要做的事情就是,指定你想通过查询获得的结果的条件和要求。在检索数据过程中,你不需要关注实现查询的内部机制:数据库引擎会决定最佳的执行查询的算法和逻辑。 由于 SQL 是基于集合的,所以这种方法比起程序方法更加有效,这也解释了为什么在某些情况下,SQL 可以比代码工作地更快。 基于集合的查询方法也是数据挖掘分析行业要求你必须掌握的技能!因为你需要熟练的在这两种方法之间进行切换。如果你发现自己的查询中存在程...
葡萄城控件技术团队 发布于 3周前 阅读 850 点赞 2

基于腾讯Angel的LDA*入选VLDB,超越微软LightLDA

--- > 2017年8月27日-9月1日, 数据库领域的国际顶级学术会议VLDB(Very Large DataBase) 在德国慕尼黑召开。 腾讯TEG数据平台部和北京大学联合撰写的大规模主题模型系统的论文《`LDA*`:A Robust and Large-scale Topic Modeling System》, 入选了今年VLDB的Research Track,并获邀在大会上进行Oral Presentation。 ![](http://upload-images.jianshu.io/upload_images/1672626-5ca8ed7001bf320c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) VLDB会议由VLDB基金会赞助,和另外两大会议SIGMOD、ICDE构成了数据库领域的三个顶级会议,而它是这3个会议中,含金量最高的一个。VLDB的论文接受率总体很低,只有创新性很高、贡献很大的论文才有机会被录用。近年来随着大数据的发展,VLDB的领域也从数据库扩展到大数据相关领域,与时俱进的同时,依然保持着对文章质量的严格把控。 本次论文的主要内容,是研究如何在工业界的环境中建立一个大规模的主题模型训练系统。在这之前,已经有很多的相关的系统工作,包括YahooLDA,微软的LightLDA以及Petuum等,而`LDA*` 则解决了 __鲁棒的采样性能__ 以及 __词分布倾斜__ 这两个难题,取得了更好的性能。`LDA*` 构建于腾讯...
腾讯开源 发布于 3周前 阅读 204

MySQL SQL优化之覆盖索引

利用索引提升SQL的查询效率是我们经常使用的一个技巧,但是有些时候MySQL给出的执行计划却完全出乎我们的意料,我们预想MySQL会通过索引扫描完成查询,但是MySQL给出的执行计划却是通过全表扫描完成查询的,其中的某些场景我们可以利用覆盖索引进行优化。
Mr船长 发布于 3周前 阅读 1131 评论 12 点赞 10

MySQL进行Replace操作时造成数据丢失——那些坑你踩了吗?

## 一、问题说明 公司开发人员在更新数据时使用了 replace into 语句,由于使用不当导致了数据的大量丢失,到底是如何导致的数据丢失?现分析如下。 ## 二、问题分析 ### a. REPLACE 原理 REPLACE INTO 原理的官方解释为: > REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted. > 如果新插入行的主键或唯一键在表中已经存在,则会删除原有记录并插入新行;如果在表中不存在,则直接插入 地址:https://dev.mysql.com/doc/refman/5.6/en/replace.html ### b. 问题现象 丢失数据的表结构如下: ```sql CREATE TABLE `active_items` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `ad_id` char(32) NOT NULL DEFAULT '' COMMENT 'XXX', `ap_id` tinyint(4) NOT NULL DEFAULT '1' COMMENT 'XXX', `price` bigint(20) NOT NULL DEFAULT '0' COMMENT 'xxx', `rate` int(11) NOT NULL DEFAULT '0' COMMENT 'XXX', `cc_price` bigint(20) NOT NULL DEFAULT '0' COMMENT 'XXX', `sale_count` int(11) NOT NU...
o翡翠谷o 发布于 1个月前 阅读 686 评论 4

折腾笔记——使用MongoDB(1、Windows安装MongoDB)

1、MongoDB简介         MongoDB是一个高性能,开源,无模式、易部署、易使用,存储数据非常方便的文档型数据库,是当前NoSql(Not Only SQL,但其实已经悄悄滴放弃了SQL的一些特性和功能)数据库中非常热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/ ,可以去下载编译好的二进制文件和压缩包。也可以去https://github.com/mongodb,下载源码(版本非常全面)。             主要功能特点有: MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。 Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。 Mongodb中的...
二十岁以后 发布于 1个月前 阅读 542 点赞 1

Elasticsearch Cluster 安装与配置

集群模式需要两个以上的节点,通常是一个 master 节点,多个 data 节点 首先在所有节点上安装 elasticsearch,然后配置各节点的配置文件,对于 5.5.1 不需要配置决定哪些节点属于 master 节点 或者 data 节点。
neo-chen 发布于 1个月前 阅读 586

PostgreSQL 10 HASH分区实现

PostgreSQL 10 HASH分区 前面简单说明了基于pg10实现hash分区的使用语法,下面介绍参照range/list分区实现的hash分区。 注意:由于本人水平限制,难免会有遗漏及错误的地方,不保证正确性,并且是个人见解,发现问题欢迎留言指正。 思路 语法尽可能与range/list分区相似,先创建主表,再创建分区。 inser时对key值进行hash算法对分区数取余,找到要插入的分区。 可动态添加分区,当分区中有数据并新创建分区时,数据重新计算并分发。 select时约束排除使用相同的算法过滤分区。 建表语法 yonj1e=# create table h (h_id int, h_name name, h_date date) partition by hash(h_id); CREATE TABLE yonj1e=# create table h1 partition of h; CREATE TABLE yonj1e=# create table h2 partition of h; CREATE TABLE yonj1e=# create table h3 partition of h; CREATE TABLE yonj1e=# create table h4 partition of h; CREATE TABLE 建主表的语法与range/list分区一样,只有类型差别。 子表不需要想range/list分区那样的约束,因此不需要额外的说明,创建后,会将分区key值信息记录到pg_class.relpartbound。 创建主表时做了两个主要修改以识别主表的创建: /src/include/nodes/p...
yonj1e 发布于 1个月前 阅读 124 评论 1 点赞 1

PostgreSQL 日志审计

 PostgreSQL 日志审计 摘要 审计是指记录用户的登陆退出以及登陆后在数据库里的行为操作。 Postgres 的日志(pg_log)功能十分丰富,接下来首先会介绍它的标准日志审计功能,之后还会详细介绍 postgresql审计扩展(PgAudit) ,编译安装以及使用。 设置 highgo=# show logging_collector; --是否开启日志收集,默认off logging_collector ------------------- on (1 row) highgo=# show log_destination; --日志记录类型,默认是stderr,只记录错误输出 log_destination ----------------- stderr (1 row) highgo=# show log_directory; --日志路径,默认是$PGDATA/pg_log log_directory --------------- pg_log (1 row) highgo=# show log_filename; -日志名称,默认是postgresql-%Y-%m-%d_%H%M%S.log log_filename -------------------------------- postgresql-%Y-%m-%d_%H%M%S.log (1 row) highgo=# show log_connections; --用户session登陆时是否写入日志,默认off log_connections ----------------- off (1 row) highgo=# show log_disconnections; --用户session退出时是否写入日志,默认off log_disconnections ...
yonj1e 发布于 1个月前 阅读 378

PostgreSQL 10 分区表探密

PostgreSQL 10 分区表探密 分区介绍 PostgreSQL的分区需要先建立主表,然后再建立子表,使用继承的特性,但不需要手动写触发器/规则了,目前支持range、list分区,10 正式版发布时不知道会不会有其他的,后面我会介绍我基于10 Beta2添加的hash分区。 range分区 分区语法: postgres=# create table r (r_id int, r_name name, r_date date) partition by range (r_id); CREATE TABLE postgres=# create table r1 partition of r for values from (1) to (10); CREATE TABLE postgres=# create table r2 partition of r for values from (10) to (20); CREATE TABLE postgres=# create table r3 partition of r for values from (20) to (30); CREATE TABLE postgres=# insert into r select id, md5(random()::text), now() + (id||'day')::interval from generate_series(1, 29) t(id); INSERT 0 29 postgres=# select *, tableoid::regclass from r; r_id | r_name | r_date | tableoid ------+----------------------------------+------------+---------- 1 | 1d0d0680930198d2962b3b5f9cf82083 | 2017-08-09 | r1 2 | 47ba81de41d71bd51b18c7861a594b...
yonj1e 发布于 1个月前 阅读 468 评论 1

使用Redis解决“树”形数据的复杂查询

# 使用Redis解决“树”形数据的复杂查询 最近因业务需要,研究了一下树数据结果的存储及查询解决方案。 最初的想法是使用neo4j,可是在网上看了一下开源的不支持集群,感觉用的人不多。 网上也查了一些 [树形结构数据存储方案](https://www.biaodianfu.com/?s=%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%E6%95%B0%E6%8D%AE%E5%AD%98%E5%82%A8%E6%96%B9%E6%A1%88) 但每种实现方案都有它的一定局限性。 想了一短时间后,想出了下面的方案: 一、 因为复杂的查询都由Redis来处理,所以数据库表的设计就变得非常简单:tree 表 | 字段名称 | 数据类型 | 备注说明 | | ---- | ---- | ---- | | id | int | 主键 | | parent_id | int | 上级节点ID | 二、Redis的数据存储方案: 把表的数据存储到一个Hash表中,使用表中的id值做为此hash表的key, value值为: { id: 10, parentId: 9, childIds: [11] } ### 代码实现 为了简化测试,这里只演示Redis相关的操作 1. Tree 类定义 public class Tree { private Integer id; private String name; private Integer parentId; private List childIds; } 2. 往Redis中添加测试数据: [@Test](https://my.oschina.net/azibug) public void addTest...
qiujiayu 发布于 1个月前 阅读 1495 评论 9

融合RocksDB, Pregel, Fault-Tolerent Foxx & Satellite Collections 怎样使数据库性能提升35%?

经过数月的研发测评,开源多模型数据库ArangoDB 终于发布了其 3.2 正式版,该版本消除了两个重大的障碍,添加了一个期待已久的功能,还集成了一个有趣的功能。此外,官方团队表示新版本将 ArangoDB 的性能平均提高了 35%。同时,与 3.1 版本相比,还减少了内存的占用。集群管理方面也有了大幅度的改进。 具体如下:
GermanWifi 发布于 2个月前 阅读 159 评论 3

MySQL 死锁与日志二三事

最近线上 MySQL 接连发生了几起数据异常,都是在凌晨爆发,由于业务场景属于典型的数据仓库型应用,白天压力较小无法复现。甚至有些异常还比较诡异,最后 root cause 分析颇费周折。那实际业务当中咱们如何能快速的定位线上 MySQL 问题,修复异常呢?下文我会根据两个实际 case,分享下相关的经验与方法。 1、Case1:部分数据更新失败 某天渠道同学反馈某报表极个别渠道数据为 0,大部分渠道数据正常。这个数据是由一个统计程序每天凌晨例行更新的,按理来说,要么全部正常,要么全部失败,那会是什么原因导致极个别数据异常呢? 首先我们能想到的自然是根据统计任务日志来看了,但是看了统计程序打印的日志没有发现诸如 SQL update 失败的异常描述,那当时的数据库究竟发生了什么呢?在查看 MySQL-server 日志之前,习惯性的看了下数据库状态: SHOW ENGINE INNODB STATUS\G 恰好看到了凌晨这个 update 发生了死锁: ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2017-07-17 04:09:01 0x7f6de03c8700 *** (1) TRANSACTION: TRANSACTION 215208479, ACTIVE 0 sec fetching rows mysql tables in use 3, locked 3 LOCK WAIT 5 lock stru...
xrzs 发布于 2个月前 阅读 7863 评论 9 点赞 17 打赏 1

数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(一)之语法解析

![](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号:【芋艿的后端小屋】**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. Lexer 词法解析器](#) - [3. Token 词法标记](#) - [3.1 DefaultKeyword 词法关键词](#) - [3.2 Literals 词法字面量标记](#) - [3.2.1 Literals.IDENTIFIER 词法关键词](#) - [3.2.2 Literals.VARIABLE 变量](#) - [3.2.3 Literals.CHARS 字符串](#) - [3.2.4 Literals.HEX 十六进制](#) - [3.2.5 Literals.INT 整数](#) - [3.2.6 Literals.FLOAT 浮点数](#) - [3.3 Symbol 词法符号标记](#) - [3.4 Assist 词法辅助标记](#) - [4. 彩蛋](#) ------- # 1. 概述 **SQL 解析引擎**,数据库中间件必备的功能和流程。Sharding-JDBC 在 `1.5.0.M1` 正式发布时,将 SQL 解析引擎从 Druid 替换成了自研的。**新引...
芋艿V 发布于 2个月前 阅读 978 评论 6 点赞 3

大容量类 Redis 存储的场景补充-pika

导读 我们在《大容量类 Redis 存储 — 有关 pika 的一切》里介绍过pika的诞生、pika的特点、pika的核心以及pika的使用。文章中非常详细的解析了pika同步逻辑中的重要文件:“write2file”的数据存储方式及实现原理,非常值得一看! pika pika 是 360 Web 平台部 DBA 与基础架构组合作开发的大容量类 Redis 存储,pika 的出现并不是为了替代 Redis,而是 Redis 的场景补充。pika 力求在完全兼容 Redis 协议、继承 Redis 便捷运维设计的前提下通过持久化存储的方式解决 Redis 在大容量场景下的问题,如恢复时间慢、主从同步代价高、单线程相对脆弱、承载数据较有限、内存成本高昂等。 pika主从复制原理之binlog binlog相关的文件包含两部分: manifest和write2file,其中manifest记录了日志元信息,包括当前日志文件编号、当前日志文件偏移量,write2file+num记录了pika接收到的所有redis写命令、参数。 文件格式 manifest文件格式: 日志偏移量(8字节)|con_offset(8字节,未使用)|元素个数(4字节,未使用)|日志文件编号(4字节)。 Binlog文件格式: Binlog文件固定大小为100MB,每个Binlog文件由多个Block组成,每个Block大小固定为64KB,每一个写redis命令称为一个Record。一个...
问题终结者 发布于 2天前 阅读 6

终极指南——如何编写更好的SQL查询?

基于集合和程序的方法进行查询 反向模型中隐含的事实是,建立查询时基于集合和程序的方法之间存在着不同。 查询的程序方法是一种非常类似于编程的方法:你告诉系统需要做些什么以及如何做。例如上一篇文章中的示例,通过执行一个函数然后调用另一个函数来查询数据库,或者使用包含循环、条件和用户定义函数(UDF)的逻辑方式来获得最终查询结果。你会发现通过这种方式,一直在请求一层一层中数据的子集。这种方法也经常被称为逐步或逐行查询。 另一种是基于集合的方法,只需指定需要执行的操作。使用这种方法要做的事情就是,指定你想通过查询获得的结果的条件和要求。在检索数据过程中,你不需要关注实现查询的内部机制:数据库引擎会决定最佳的执行查询的算法和逻辑。 由于 SQL 是基于集合的,所以这种方法比起程序方法更加有效,这也解释了为什么在某些情况下,SQL 可以比代码工作地更快。 基于集合的查询方法也是数据挖掘分析行业要求你必须掌握的技能!因为你需要熟练的在这两种方法之间进行切换。如果你发现自己的查询中存在程序查询,则应该考虑是否需要重写这部分。 从查询到执行计划 反向模式不是静止不变的。在你成为 SQL 开发者的过程中,避免查询反向模型和重写...
问题终结者 发布于 11小时前 阅读 3

SpringJdbcTemplate之namedJdbcTemplate 处理in及多条件查询的几种方式:

SpringJdbcTemplate之namedJdbcTemplate 处理in查询及多条件查询的几种方式: 第一种方式:用对象传参 ``` private static final String GETGUESSPERSONSP="select datenum from scok where datenum= :updateTime and seq in(:list) "; public List getGuessPersonSp(List intList ,int updateTime) { SpVo vo = new SpVo(); vo.setUpdateTime(updateTime); vo.setList(list); SqlParameterSource ps=new BeanPropertySqlParameterSource(vo); final List list= new ArrayList(); this.getNamedJdbcTemplate().query(GETGUESSPERSONSP, ps,new RowCallbackHandler(){ [@Override](https://my.oschina.net/u/1162528) public void processRow(ResultSet rs) throws SQLException { Sock vo = new Sock(); vo.setDatenum(rs.getInt("datenum")); list.add(vo); }}); return list; } ``` 第二种方式:用Map传参 ``` private static final String SELECT_POINTBYUSERID = "select pointFlag from perpo where pointid=:pointID AND objectID =:objectID and userID in(:list)"; public List getReturnHalfPoint(List list, int pointID, String ObjectID) { MapSqlParameterSou...
Alexdevlin 发布于 2个月前 阅读 14

一步一步教你centos7.3安装mysql5.7

一步一步教你centos7.3安装mysql5.7
liuchangng 发布于 1个月前 阅读 41

将你的 CentOS 变成 OSPF 路由器

导读 Quagga是一个开源路由软件套件,可以将Linux变成支持如RIP、OSPF、BGP和IS-IS等主要路由协议的路由器。它具有对IPv4和IPv6的完整支持,并支持路由/前缀过滤。Quagga可以是你生命中的救星,以防你的生产路由器一旦宕机,而你没有备用的设备而只能等待更换。通过适当的配置,Quagga甚至可以作为生产路由器。 本教程中,我们将连接假设之间具有专线连接的两个分支机构网络(例如,192.168.1.0/24和172.17.1.0/24)。 我们的CentOS位于所述专用链路的两端。两台主机名分别设置为“site-A-RTR”和“site-B-RTR'。下面是IP地址的详细信息。 •Site-A: 192.168.1.0/24 •Site-B: 172.16.1.0/24 •两个 Linux 路由器之间的对等网络: 10.10.10.0/30 Quagga包括了几个协同工作的守护进程。在本教程中,我们将重点建立以下守护进程。 1.Zebra: 核心守护进程,负责内核接口和静态路由。 2.Ospfd: IPv4 OSPF 守护进程。 在CentOS上安装Quagga 我们使用yum安装Quagga。 # yum install quagga 在CentOS7,SELinux默认会阻止quagga将配置文件写到/usr/sbin/zebra。这个SELinux策略会干扰我们接下来要介绍的安装过程,所以我们要禁用此策略。对于这一点,无论是关闭SELinux(这里不推荐...
问题终结者 发布于 1个月前 阅读 24

Neo4j查询报错:Unable to load NODE with id 或者 Neo.ClientError.Statement.EntityNotFound

出现这个错误的原因可能是节点损坏,如果在数据库进行更新或插入操作时强制kill掉了数据库进程,则极有可能损坏一些节点。 解决方案有两个思路: 一是使用neo4j-core api来直接操作数据库文件,依次遍历所有节点,找到损坏的节点,删除后重新建立节点和关系,这个方法要求使用者对数据库的数据结构和api要了解; 第二种方法是直接删除节点和关系,也就是放弃损坏的节点,可以使用Michael Hunger大神写的数据库copy工具store-utils来处理。这个工具在copy数据库的时候会忽略掉损坏的节点并删除相应的关系,比较方便。 如果数据量比较大而且损坏的节点比较少,推荐使用这个方法
T_SevenS 发布于 2周前 阅读 5

Oracle 12c CDB 和PDB 数据库的启动与关闭 说明

在Oracle 12c中,分CDB 和PDB,他们的启动和关闭操作整理如下。   1  Container Database (CDB)   对于CDB,启动和关闭与之前传统的方式一样,具体语法如下: STARTUP[NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY] SHUTDOWN[IMMEDIATE | ABORT]     要注意,在12c数据库创建完成后,默认情况下使用sqlplus / as sysdba  登录连接的是CDB。   [oracle@Ora12c~]$ sqlplus / as sysdba   SQL*Plus:Release 12.1.0.1.0 Production on Thu Apr 24 17:50:34 2014   Copyright(c) 1982, 2013, Oracle.  All rightsreserved.     Connectedto: OracleDatabase 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production Withthe Partitioning, OLAP, Advanced Analytics and Real Application Testing options   SQL>show con_name   CON_NAME ------------------------------ CDB$ROOT SQL>   SQL>select con_id, dbid, guid, name , open_mode from v$pdbs;       CON_ID      DBID GUID                            NAME                          OPEN_MODE ---------...
rootliu 发布于 2周前 阅读 6

cx_Oracle 5.2.1

cx_Oracle 5.2.1 Downloads ↓ Python interface to Oracle Latest Version: 6.0.2 Python interface to Oracle conforming to the Python DB API 2.0 specification. See http://www.python.org/topics/database/DatabaseAPI-2.0.html.   File Type Py Version Uploaded on Size cx_Oracle-5.2.1-11g-py26-1.x86_64.rpm (md5) RPM 2.6 2016-01-21 138KB cx_Oracle-5.2.1-11g-py27-1.x86_64.rpm (md5) RPM 2.7 2016-01-20 168KB cx_Oracle-5.2.1-11g.win-amd64-py2.7.exe (md5) MS Windows installer 2.7 2016-01-19 337KB cx_Oracle-5.2.1-11g.win-amd64-py3.4.exe (md5) MS Windows installer 3.4 2016-01-19 326KB cx_Oracle-5.2.1-11g.win-amd64-py3.5.exe (md5) MS Windows installer 3.5 2016-01-19 255KB cx_Oracle-5.2.1-11g.win32-py2.7.exe (md5) MS Windows installer 2.7 2016-01-19 292KB cx_Oracle-5.2.1-11g.win32-py3.4.exe (md5) MS Windows installer 3.4 2016-01-19 287KB cx_Oracle-5.2.1-11g.win32-py3.5.exe (md5) MS Windows installer 3.5 2016-01-19 232KB cx_Oracle-5.2.1-12c-py26-1.x86_64.rpm (md5) RPM 2.6 2016-01-21 138KB cx_Oracle-5.2...
rootliu 发布于 2周前 阅读 5

有时候执行的oracle,sql语句要查看下性能情况,可以用这个进行下简单计算和统计

--http://www.cnblogs.com/Invokerr/p/7084786.html SELECT  ELAPSED_TIME,LAST_ACTIVE_TIME,EXECUTIONS , DISK_READS, BUFFER_GETS,  ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,  ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT  FROM  V$SQLAREA  WHERE  EXECUTIONS>0  AND  BUFFER_GETS > 0  AND  (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8  and SQL_TEXT like '%htjs%' ORDER BY  5 DESC;  
BeGit 发布于 2周前 阅读 8

12c pdb的数据泵导入导出简单示例

12c pdb的数据泵导入导出简单示例 2015-02-26 17:29:19 分类: Oracle   12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb。在为pdb做数据泵导入导出时和传统的数据库有少许不同。 1,需要为pdb添加tansnames 2,导入导出时需要在userid参数内指定其tansnames的值,比如userid=user/pwd@tans   下面通过一个例子演示pdb的数据泵导入导出操作       1,指定当前的sid为可插拔数据库。如果数据库中安装了多个实例,其中有普通单实例的,有插拔数据库的等等,为了减少错误首先确定其sid [oracle@snow ~]$ export ORACLE_SID=cdb   2,登录cdb,查看pdb。如果此时pdb1是mount状态可以切换到pdb1下执行alter database open命令和普通数据库一样。或者使用alter pluggable database all open开启所有的pdb。 [oracle@snow ~]$ sqlplus / as sysdba   SYS@cdb >show pdbs   CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO   3,切换到pdb1 SYS@cdb >alter session set container=pdb1;   4,解锁示例用户hr,以后的schema级别导入导...
rootliu 发布于 2周前 阅读 8

DB2笔记

### 刷新表 ``` call sysproc.admin_cmd ( 'reorg table SCM_BASECATEGORY' ) ``` ### 重新设置设置主键初始值 ``` alter table SCM_BASECATEGORY alter column BASECATEGORY_ID restart with 317; ``` ### DB2展示分组前n条数据 ``` select * from ( select id,name ,row_number() over(partition by id order by name desc) as idd from hr.aaaa ) z where idd <=3 ```
json_712 发布于 1周前 阅读 5

OEL5.5(64bit)安装Oracle 11g R2 RAC教程(图文并茂超详细)

OEL5.5(64bit)安装Oracle 11g R2 RAC教程(图文并茂超详细) 2014-03-19 16:55:15 分类: Oracle   1.安装前的准备: 操作系统:oracle linux 5.5 64bit 集群软件:GI 11.2.0.1 数据库:database rdbms 11.2.0.1 2.资源准备: oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm oracleasmlib-2.0.4-1.el5.x86_64.rpm oracleasm-support-2.1.7-1.el5.x86_64.rpm openfiler 3.操作系统安装: DNS server:domain name  db server:rac1 rac2  storage server:openfiler 4.IP地址规划: DNS server:192.168.192.168  db node1:192.168.192.169 public          192.168.192.171 VIP              10.0.0.1 private db node2:192.168.192.170 public          192.168.192.172 VIP           10.0.0.2 private scan: 192.168.192.173         192.168.192.174         192.168.192.175 5.我们先配置DNS,DNS是什么我就不多说了,这里主要的作用在于引入一个新的特性,11g R2后引入SCAN IP的概念,就是在客户端和数据库之间增加一层虚拟网络服务层,即是SCAN IP和SCAP IP Listener。在客户端的tnsnames.ora配置文件中,只需要配置SCAN IP...
rootliu 发布于 5天前 阅读 3

【ASM】Oracle ASM + 11gR2 + RHEL6.5 安装

【ASM】Oracle ASM + 11gR2 + RHEL6.5 安装 2014-07-02 21:06:58 分类: Oracle     【ASM】Oracle ASM + 11gR2 + RHEL6.5 安装 1.1    简介       1.1.1    ASMLib     1.1.2    什么是 udev     1.1.3    Why ASMLIB and why not 1.2    在 RHEL 6.4 上安装 Oracle 11gR2 + ASM --使用udev 1.2.1    检查硬件     1.2.2    安装软件包检查     1.2.3    修改主机名     1.2.4    网络配置     1.2.5    磁盘准备     1.2.6    配置目录、用户等     1.2.7    使用udev管理磁盘     1.2.8    系统内核参数修改     1.2.9    为 Linux 系统配置本地 YUM 源     1.2.10    安装grid     1.2.11    使用netmgr建立监听     1.2.12    开始搭建 Oracle 数据库     1.2.13    使用 netmgr 建立监听--Oracle用户不需要创建     1.2.14    使用 dbca 创建数据库     1.2.15    配置ORACLE自动启动     1.2.16    验证     1.3    启动crs     1.4    报错: 1.4.1    Oracle 11gR2 RAC ...
rootliu 发布于 5天前 阅读 10

Oracle 11.2.0.3

Oracle 11.2.0.3  http://hi.baidu.com/yanzi52351/item/c821c6fcf645e10cc6dc45c5   这是完整版本,可以直接安装(验证)。使用迅雷直接下载。   Linux x86/x64 : https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_1of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_1of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_2of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_2of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_3of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_3of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_4of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_4of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_5of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_5of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x8...
rootliu 发布于 5天前 阅读 22

最常用的四种大数据分析方法

本文主要讲述数据挖掘分析领域中,最常用的四种数据分析方法:描述型分析、诊断型分析、预测型分析和指令型分析。 当刚涉足数据挖掘分析领域的分析师被问及,数据挖掘分析人员最重要的能力是什么时,他们给出了五花八门的答案。 其实我想告诉他们的是,数据挖掘分析领域最重要的能力是:能够将数据转化为非专业人士也能够清楚理解的有意义的见解。 使用一些工具来帮助大家更好的理解数据分析在挖掘数据价值方面的重要性,是十分有必要的。其中的一个工具,叫做四维分析法。 简单地来说,分析可被划分为4种关键方法。 下面会详细介绍这四种方法。   1. 描述型分析:发生了什么? 这是最常见的分析方法。在业务中,这种方法向数据分析师提供了重要指标和业务的衡量方法。 例如,每月的营收和损失账单。数据分析师可以通过这些账单,获取大量的客户数据。了解客户的地理信息,就是“描述型分析”方法之一。利用可视化工具,能够有效的增强描述型分析所提供的信息。   2. 诊断型分析:为什么会发生? 描述性数据分析的下一步就是诊断型数据分析。通过评估描述型数据,诊断分析工具能够让数据分析师深入地分析数据,钻取到数据的核心。 良好设计的BI dashboard能够整合:按照...
葡萄城控件技术团队 发布于 4天前 阅读 8

oracle decode,sign ,LISTAGG的运用

由于工作中用到了这些函数,为了不忘记怎么使用的,这里记录在自己的博客中,以备不时之需. 仅作为自己工作日志
大大的微笑 发布于 4天前 阅读 5

Oracle恢复流程图

Oracle恢复流程图   本图来自于网络,想当初小麦苗刚开始接触备份恢复的时候,就是靠着这张图来学习的,今天把这张图分享给大家,共勉。
rootliu 发布于 3天前 阅读 9

浅析开源数据库MySQL架构

数据库是所有应用系统的核心,故保证数据库稳定、高效、安全地运行是所有企业日常工作的重中之重。数据库系统一旦出现问题无法提供服务,有可能导致整个系统都无法继续工作。所以,一个成功的数据库架构在高可用设计方面也是需要充分考虑的。下面就为大家介绍一下如何构建一个高可用的MySQL数据库系统。 做过DBA或者是运维的同学都应该知道,任何设备或服务,存在单点就会带来巨大风险,因为这台物理机一旦宕机或服务模块crash,若在短时间内无法找到替换的设备,势必会影响整个应用系统。因而如何保证不出现单点就是我们的重要工作,使用MySQL高可用方案可以很好地解决这个问题,一般有以下几种: 一、利用MySQL自身的Replication来实现高可用 MySQL自带的Replication就是我们常说的主从复制(AB复制),通过对主服务器做一个从机,在主服务器宕机的情况下快速地将业务切换到从机上,保证应用的正常使用。利用AB复制做高可用方案也分为几种不同的架构: 1、常规的MASTER---SLAVE解决方案 普通的MASTER---SLAVE是目前国内外大多数中小型公司最常用的一种架构方案,主要的好处就是简单、使用设备较少(成本较低)、维护方便。这种架构能解决单点的问题,而且还能在很大程度上...
illy安智 发布于 1周前 阅读 1927 评论 5 点赞 1

[ElasticSearch ]2轻量级搜索

# 概述 ES是一个搜索引擎,我们之所以要使用它就是为了借助它快速构建全文索引,帮助我们快速检索数据。 本文接着上篇文章[ElasticSearch1初步使用](http://www.jianshu.com/p/b338b37dd5e2)继续来通过blogs索引实例说明如何简单的借助ES实现轻量级搜索功能。 # 问题 本文主要以应用ES为基本问题,主要探索ES通过GET方法进行搜索的使用方法。在实验的示例中本文也会简要的描述ES相关的理论知识。 如何使用索引进行搜索,对搜索结果进行分页,并使用简单的条件来过滤搜过结果是本文需要探讨的问题。 # 方法 本文采用对照RDBMS中SELECT功能的方法来描述ES中的轻量级搜索的概念,从总体上来讲,在ES中搜索数据其实和在RDBMS中SELECT数据是一样的,都可以指定搜索(查询)条件,都可以设置返回字段,也都可以进行一定的聚合运算。只不过ES搜索引擎使用全文搜索得到的结果会根据内容与搜索关键字的匹配程度给与每个结果一个权重,这个权重就作为搜索结果排序的依据。而RDBMS完全是依照ORDER BY子句中指定的排序规则进行排序的。 说明: ES REST API所提供的完全在URL中描述参数的接口就是轻量级搜索接口,换句话说轻量级搜索接口都是使用GET方法的。所以文中示例使用的地址和API...
为为02 发布于 5天前 阅读 327

如何编写更好的SQL查询:终极指南-第二部分

上一篇文章中,我们学习了 SQL 查询是如何执行的以及在编写 SQL 查询语句时需要注意的地方。 下面,我进一步学习查询方法以及查询优化。   基于集合和程序的方法进行查询 反向模型中隐含的事实是,建立查询时基于集合和程序的方法之间存在着不同。 查询的程序方法是一种非常类似于编程的方法:你告诉系统需要做些什么以及如何做。例如上一篇文章中的示例,通过执行一个函数然后调用另一个函数来查询数据库,或者使用包含循环、条件和用户定义函数(UDF)的逻辑方式来获得最终查询结果。你会发现通过这种方式,一直在请求一层一层中数据的子集。这种方法也经常被称为逐步或逐行查询。 另一种是基于集合的方法,只需指定需要执行的操作。使用这种方法要做的事情就是,指定你想通过查询获得的结果的条件和要求。在检索数据过程中,你不需要关注实现查询的内部机制:数据库引擎会决定最佳的执行查询的算法和逻辑。 由于 SQL 是基于集合的,所以这种方法比起程序方法更加有效,这也解释了为什么在某些情况下,SQL 可以比代码工作地更快。 基于集合的查询方法也是数据挖掘分析行业要求你必须掌握的技能!因为你需要熟练的在这两种方法之间进行切换。如果你发现自己的查询中存在程...
葡萄城控件技术团队 发布于 3周前 阅读 850 点赞 2

浅析开源数据库MySQL架构

数据库是所有应用系统的核心,故保证数据库稳定、高效、安全地运行是所有企业日常工作的重中之重。数据库系统一旦出现问题无法提供服务,有可能导致整个系统都无法继续工作。所以,一个成功的数据库架构在高可用设计方面也是需要充分考虑的。下面就为大家介绍一下如何构建一个高可用的MySQL数据库系统。 做过DBA或者是运维的同学都应该知道,任何设备或服务,存在单点就会带来巨大风险,因为这台物理机一旦宕机或服务模块crash,若在短时间内无法找到替换的设备,势必会影响整个应用系统。因而如何保证不出现单点就是我们的重要工作,使用MySQL高可用方案可以很好地解决这个问题,一般有以下几种: 一、利用MySQL自身的Replication来实现高可用 MySQL自带的Replication就是我们常说的主从复制(AB复制),通过对主服务器做一个从机,在主服务器宕机的情况下快速地将业务切换到从机上,保证应用的正常使用。利用AB复制做高可用方案也分为几种不同的架构: 1、常规的MASTER---SLAVE解决方案 普通的MASTER---SLAVE是目前国内外大多数中小型公司最常用的一种架构方案,主要的好处就是简单、使用设备较少(成本较低)、维护方便。这种架构能解决单点的问题,而且还能在很大程度上...
illy安智 发布于 1周前 阅读 1927 评论 5 点赞 1

[ElasticSearch ]2轻量级搜索

# 概述 ES是一个搜索引擎,我们之所以要使用它就是为了借助它快速构建全文索引,帮助我们快速检索数据。 本文接着上篇文章[ElasticSearch1初步使用](http://www.jianshu.com/p/b338b37dd5e2)继续来通过blogs索引实例说明如何简单的借助ES实现轻量级搜索功能。 # 问题 本文主要以应用ES为基本问题,主要探索ES通过GET方法进行搜索的使用方法。在实验的示例中本文也会简要的描述ES相关的理论知识。 如何使用索引进行搜索,对搜索结果进行分页,并使用简单的条件来过滤搜过结果是本文需要探讨的问题。 # 方法 本文采用对照RDBMS中SELECT功能的方法来描述ES中的轻量级搜索的概念,从总体上来讲,在ES中搜索数据其实和在RDBMS中SELECT数据是一样的,都可以指定搜索(查询)条件,都可以设置返回字段,也都可以进行一定的聚合运算。只不过ES搜索引擎使用全文搜索得到的结果会根据内容与搜索关键字的匹配程度给与每个结果一个权重,这个权重就作为搜索结果排序的依据。而RDBMS完全是依照ORDER BY子句中指定的排序规则进行排序的。 说明: ES REST API所提供的完全在URL中描述参数的接口就是轻量级搜索接口,换句话说轻量级搜索接口都是使用GET方法的。所以文中示例使用的地址和API...
为为02 发布于 5天前 阅读 327

pgBadger(PostgreSQL日志分析工具)

摘要 之前曾介绍过PostgreSQL的日志审计,这会将执行的SQL输出到服务日志(pg_log),势必会带来性能问题,真正的问题是,这些记录对我们有多少帮助?所以我们来看一下如何使用增加的日志记录来做一些有用的事情。 pg_stat_statements 不仅输出SQL语句,还可以输出执行时间等,通过分析此服务器日志,可以知道执行什么样的SQL,以及缩小范围找到哪些SQL有可能出现性能问题。 SQL日志分析工具pgBadger pgBadger 主页:home 下载地址:download pgBadger是在Perl中创建的一个脚本,与PHP脚本中开发的名为pgFouine的程序具有相同的功能。 在命令行上指定并执行服务器日志时,会生成一个将服务器日志分析为HTML文件的报告。 此外,它不仅收集SQL,还收集服务器日志中的错误日志等。 环境 CentOS 6.9、PostgreSQL9.5.9、pgBadger 9.2 安装pgBadger tar zxvf pgbadger-9.2.tar.gz cd pgbadger-9.2 [root@localhost pgbadger-9.2]# ll total 1416 drwxr-xr-x. 8 root root 4096 Sep 11 01:13 blib -rw-rw-r--. 1 root root 94609 Jul 28 07:45 ChangeLog -rw-rw-r--. 1 root root 347 Jul 28 07:45 CONTRIBUTING.md drwxrwxr-x. 2 root root 4096 Jul 28 07:45 doc -...
yonj1e 发布于 2周前 阅读 434 点赞 1

mysql安装卡在Type and NetWorking,无法继续安装。

由于重装了电脑,需要重新安装mysql,使用的mysql-installer-community-5.7.19.0.msi安装包。安装一切正常,然后就卡在Type and NetWorking页面,无法继续安装,看不到Next按钮。 后来查找了半天,才发现是电脑设置的原因。 桌面右键/个性化/显示/修改为:较小-默认100%,即可。如下图: 设置完成后,注销电脑。然后继续安装MYSQL,就可以看到Next按钮,正常安装了。
一片云里的天空 发布于 2个月前 阅读 299

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

Elasticsearch Cluster 安装与配置

集群模式需要两个以上的节点,通常是一个 master 节点,多个 data 节点 首先在所有节点上安装 elasticsearch,然后配置各节点的配置文件,对于 5.5.1 不需要配置决定哪些节点属于 master 节点 或者 data 节点。
neo-chen 发布于 1个月前 阅读 586

如何编写更好的SQL查询:终极指南-第二部分

上一篇文章中,我们学习了 SQL 查询是如何执行的以及在编写 SQL 查询语句时需要注意的地方。 下面,我进一步学习查询方法以及查询优化。   基于集合和程序的方法进行查询 反向模型中隐含的事实是,建立查询时基于集合和程序的方法之间存在着不同。 查询的程序方法是一种非常类似于编程的方法:你告诉系统需要做些什么以及如何做。例如上一篇文章中的示例,通过执行一个函数然后调用另一个函数来查询数据库,或者使用包含循环、条件和用户定义函数(UDF)的逻辑方式来获得最终查询结果。你会发现通过这种方式,一直在请求一层一层中数据的子集。这种方法也经常被称为逐步或逐行查询。 另一种是基于集合的方法,只需指定需要执行的操作。使用这种方法要做的事情就是,指定你想通过查询获得的结果的条件和要求。在检索数据过程中,你不需要关注实现查询的内部机制:数据库引擎会决定最佳的执行查询的算法和逻辑。 由于 SQL 是基于集合的,所以这种方法比起程序方法更加有效,这也解释了为什么在某些情况下,SQL 可以比代码工作地更快。 基于集合的查询方法也是数据挖掘分析行业要求你必须掌握的技能!因为你需要熟练的在这两种方法之间进行切换。如果你发现自己的查询中存在程...
葡萄城控件技术团队 发布于 3周前 阅读 850 点赞 2

如何理解并正确使用MySql索引

1、概述 索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构 2、索引的优点 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度 2、帮助服务器避免排序和临时表 3、可以将随机I/O变为顺序I/O 3、索引的创建 3.1、主键索引 ALTER TABLE 'table_name' ADD PRIMARY KEY 'index_name' ('column'); 3.2、唯一索引 ALTER TABLE 'table_name' ADD UNIQUE 'index_name' ('column'); 3.3、普通索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column'); 3.4、全文索引 ALTER TABLE 'table_name' ADD FULLTEXT 'index_name' ('column'); 3.5、组合索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column1', 'column2', ...); 4、B+Tree的索引规则 创建一个测试的用户表 DROP TABLE IF EXISTS user_test; CREATE TABLE user_test( id int AUTO_INCREMENT PRIMARY KEY, user_name varchar(30) NOT NULL, sex bit(1) NOT NULL DEFAULT b'1', city varc...
FEINIK 发布于 2个月前 阅读 6279 评论 24 点赞 29 打赏 2

MySQL 死锁与日志二三事

最近线上 MySQL 接连发生了几起数据异常,都是在凌晨爆发,由于业务场景属于典型的数据仓库型应用,白天压力较小无法复现。甚至有些异常还比较诡异,最后 root cause 分析颇费周折。那实际业务当中咱们如何能快速的定位线上 MySQL 问题,修复异常呢?下文我会根据两个实际 case,分享下相关的经验与方法。 1、Case1:部分数据更新失败 某天渠道同学反馈某报表极个别渠道数据为 0,大部分渠道数据正常。这个数据是由一个统计程序每天凌晨例行更新的,按理来说,要么全部正常,要么全部失败,那会是什么原因导致极个别数据异常呢? 首先我们能想到的自然是根据统计任务日志来看了,但是看了统计程序打印的日志没有发现诸如 SQL update 失败的异常描述,那当时的数据库究竟发生了什么呢?在查看 MySQL-server 日志之前,习惯性的看了下数据库状态: SHOW ENGINE INNODB STATUS\G 恰好看到了凌晨这个 update 发生了死锁: ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2017-07-17 04:09:01 0x7f6de03c8700 *** (1) TRANSACTION: TRANSACTION 215208479, ACTIVE 0 sec fetching rows mysql tables in use 3, locked 3 LOCK WAIT 5 lock stru...
xrzs 发布于 2个月前 阅读 7863 评论 9 点赞 17 打赏 1

TiDB 助力一面数据实现消费领域的决策分析平台

>深圳市一面网络技术有限公司(下称:一面数据)是一家为消费领域的领导企业提供实时、精准、全面的数据洞察和决策指导的创新型企业,利用人工智能和算法,进行自然语言处理,语义情感分析,回归预测模型等,帮助客户实现精准产品运营和预测市场变化。一面数据服务于国内外一流企业,包括世界最大的对冲基金、国际一线汽车品牌、快消品龙头厂商,以及时尚鞋服大牌等。 ### 改造前系统架构 一面数据的核心 IT 系统覆盖了从数据获取、数据清洗处理、数据建模到数据可视化的全套数据分析流程。核心系统每天有海量从互联网采集的公开数据和来自企业内部的数据,对数据存储的容量、扩展性和可用性都有很高的要求。 起初,一面数据的核心系统采用的是多个 MySQL 实例和一个 Cassandra 集群。MySQL 多实例集群主要存储指定特征的爬虫数据,Cassandra 主要存储数据量大、不适合存储 MySQL 的全页面缓存的数据。在数据量/请求量小的时候系统运行正常。下图为:一面数据改造前系统构架图 ![](http://static.zybuluo.com/zyytop/k3xmr2qaf7hxh7lvhsp8ur8r/%E9%9D%A21111.png) 随着数据量的增长,逐渐暴露出很多问题: MySQL: 随着数据增长,存储容量接近单机的磁盘极限,单机的磁盘 ...
TiDB 发布于 5天前 阅读 24

Oracle 11.2.0.3

Oracle 11.2.0.3  http://hi.baidu.com/yanzi52351/item/c821c6fcf645e10cc6dc45c5   这是完整版本,可以直接安装(验证)。使用迅雷直接下载。   Linux x86/x64 : https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_1of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_1of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_2of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_2of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_3of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_3of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_4of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_4of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x86-64_5of7.zip?aru=14125322&patch_file=p10404530_112030_Linux-x86-64_5of7.zip https://updates.oracle.com/Orion/Services/download/p10404530_112030_Linux-x8...
rootliu 发布于 5天前 阅读 22

psql: FATAL: database “<user>” does not exist

转自 : https://stackoverflow.com/questions/17633422/psql-fatal-database-user-does-not-exist   Login using default template1 database: #psql -d template1 #template1=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+----------+-------------+-------------+--------------------- postgres | gogasca | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | gogasca | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca + | | | | | gogasca=CTc/gogasca template1 | gogasca | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca + | | | | | gogasca=CTc/gogasca (3 rows) Create a database with your userId: template1=# CREATE DATABASE gogasca WITH OWNER gogasca ENCODING 'UTF8'; CREATE DATABASE Quit and then login again template1=# \q gonzo:~ gogasca$ psql -h localhost psql (9.4.0) Type "help" for help. ...
LuXing 发布于 3天前 阅读 20

MongoDB 基础命令

mongodb
扫把就是扫把 发布于 4天前 阅读 23

mysql数据表存储引擎类型及特性

数据表类型(存储引擎) 数据库引擎用于存储、处理和保护数据的核心服务,利用数据库引擎可控制访问权限并快速处理事务,利用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库,包括创建用于存储数据的表和用于查看、管理、保护数据安全的数据库对象(索引、视图、存储过程)。 常见引擎比对 特性 Myisam InnoDB Memory BDB Archive 存储限制 无限制 64TB 有 没有 没有 事务安全 - 支持 - 支持 - 锁机制 表锁 行锁 表锁 页锁 行锁 B树索引 支持 支持 支持 支持 - 哈希索引 - 支持 支持 - - 全文索引 支持 - - - - 集群索引 - 支持 - - - 数据缓存 - 支持 支持 - - 索引缓存 支持 支持 支持 - - 数据压缩 支持 - - - 支持 空间使用 低 高 N/A 低 非常低 内存使用 低 高 中 低 低 批量插入速度 高 低 高 高 非常高 外键支持 - 支持 - - - 各引擎特点 Myisam mysql默认存储引擎,在磁盘上存储成三个文件.frm(存储表定义).MYD(MYData存储数据)。MYI(MYIndex存储索引); 没有事务支持,不支持行锁外键,因此当insert、update会锁定整个表,效率会低一些,MyIASM中存储了行数,如果表的读操作远大于写且不需要事务,MyISAM优选。 索引 MyISAM引擎索引结构为B+Tree,...
qinwei 发布于 2周前 阅读 231 评论 3

Oracle Database 11g Release 2 RAC On Oracle Linux 5.8 Using VirtualBox

  8i | 9i | 10g | 11g | 12c | 13c | Misc | PL/SQL | SQL | RAC | WebLogic | Linux Home » Articles » 11g » Here Oracle Database 11g Release 2 RAC On Oracle Linux 5.8 Using VirtualBox This article describes the installation of Oracle Database 11g release 2 (11.2 64-bit) RAC on Oracle Linux (5.8 64-bit) using VirtualBox (4.2.6) with no additional shared disk devices. I've purposely left this as an 11.2.0.1 installation as this version is downloadable from OTN without the need for a My Oracle Support (MOS) CSI. The process works just as well for 11.2.0.3, which you can download from MOS. Introduction Download Software VirtualBox Installation Virtual Machine Setup Guest Operating System Installation Oracle Installation Prerequisites Automatic Setup Manual Setup Additional Setup Install Guest Additions Create Shared Disks Clone the Virtual Machine Install the Grid Infrastructure Install the Database Check the Status of the RAC Related articles. Oracle Database 11g Release 2 (11.2.0.3.0...
rootliu 发布于 5天前 阅读 19

Spring Boot 数据库连接池参数

使用的数据库线上没有配置最大连接数,导致消息积压,从别人那转一份配置过来
fgqr 发布于 4天前 阅读 17

福利来啦!! - PostgreSQL9.5架构图与外存图

![PostgreSQL9.5架构图](https://raw.githubusercontent.com/ChrisYuan/markdown_pix/master/PostgreSQL95%20Arch.jpeg "PostgreSQL9.5架构图") ![PostgreSQL9.5外存图](https://raw.githubusercontent.com/ChrisYuan/markdown_pix/master/PostgreSQL95外存.jpeg "PostgreSQL9.5外存图")
ChrisYuan 发布于 1周前 阅读 41

CentOS 6.5 64 安装 mysql-5.7.19

在CentOS 6.5 64位系统下安装 mysql 5.7.19。
流云_CN 发布于 1个月前 阅读 102

sqlalchemy 插入或者更新数据失败 UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-3: o

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-3: ordinal not in range(256)
coord 发布于 4天前 阅读 17

使用Redis解决“树”形数据的复杂查询

# 使用Redis解决“树”形数据的复杂查询 最近因业务需要,研究了一下树数据结果的存储及查询解决方案。 最初的想法是使用neo4j,可是在网上看了一下开源的不支持集群,感觉用的人不多。 网上也查了一些 [树形结构数据存储方案](https://www.biaodianfu.com/?s=%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%E6%95%B0%E6%8D%AE%E5%AD%98%E5%82%A8%E6%96%B9%E6%A1%88) 但每种实现方案都有它的一定局限性。 想了一短时间后,想出了下面的方案: 一、 因为复杂的查询都由Redis来处理,所以数据库表的设计就变得非常简单:tree 表 | 字段名称 | 数据类型 | 备注说明 | | ---- | ---- | ---- | | id | int | 主键 | | parent_id | int | 上级节点ID | 二、Redis的数据存储方案: 把表的数据存储到一个Hash表中,使用表中的id值做为此hash表的key, value值为: { id: 10, parentId: 9, childIds: [11] } ### 代码实现 为了简化测试,这里只演示Redis相关的操作 1. Tree 类定义 public class Tree { private Integer id; private String name; private Integer parentId; private List childIds; } 2. 往Redis中添加测试数据: [@Test](https://my.oschina.net/azibug) public void addTest...
qiujiayu 发布于 1个月前 阅读 1495 评论 9

MySQL InnoDB简单架构图

#### 如下是InnoDB内存与线程的架构图: ![内存池于线程架构图](https://static.oschina.net/uploads/img/201709/19001655_XPS0.png "内存池于线程架构图") #### 下面是show engine innodb status\G里面可以看到的数据的走向: ![数据走向图](https://static.oschina.net/uploads/img/201709/19001812_x4aQ.png "数据走向图") 注: * Buffer pool size为show engine innodb status语句显示的Buffer pool size乘以16的大小,因为这里的单位是页,每个页默认为16k。 * Free buffers + Database page != Buffer pool size,因为这里是LRU算法管理的页,还有其他例如锁信息等是不需要LRU算法管理的,但是也会占用一部分Buffer pool size。 * InnoDB中使用的LRU算法并不是普通的LRU算法,添加了midpoint insertion strategy,即插入位置不在LRU列表的首位,而是在由innodb_old_blocks_pct配置项控制的距离尾端的相应位置处。 如下,默认在尾部的3/8位置处: ``` mysql> show variables like 'innodb_old_blocks_pct'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_old_blocks_pct | 37 | +----------------------...
吴泽辉 发布于 4天前 阅读 11

终极指南——如何编写更好的SQL查询?

基于集合和程序的方法进行查询 反向模型中隐含的事实是,建立查询时基于集合和程序的方法之间存在着不同。 查询的程序方法是一种非常类似于编程的方法:你告诉系统需要做些什么以及如何做。例如上一篇文章中的示例,通过执行一个函数然后调用另一个函数来查询数据库,或者使用包含循环、条件和用户定义函数(UDF)的逻辑方式来获得最终查询结果。你会发现通过这种方式,一直在请求一层一层中数据的子集。这种方法也经常被称为逐步或逐行查询。 另一种是基于集合的方法,只需指定需要执行的操作。使用这种方法要做的事情就是,指定你想通过查询获得的结果的条件和要求。在检索数据过程中,你不需要关注实现查询的内部机制:数据库引擎会决定最佳的执行查询的算法和逻辑。 由于 SQL 是基于集合的,所以这种方法比起程序方法更加有效,这也解释了为什么在某些情况下,SQL 可以比代码工作地更快。 基于集合的查询方法也是数据挖掘分析行业要求你必须掌握的技能!因为你需要熟练的在这两种方法之间进行切换。如果你发现自己的查询中存在程序查询,则应该考虑是否需要重写这部分。 从查询到执行计划 反向模式不是静止不变的。在你成为 SQL 开发者的过程中,避免查询反向模型和重写...
问题终结者 发布于 11小时前 阅读 3

【BBED】BBED模拟并修复ORA-08102错误

【BBED】BBED模拟并修复ORA-08102错误
小麦苗 发布于 15小时前 阅读 9

一次 JDBC 与 MySQL 因 “CST” 时区协商误解导致时间差了 14 或 13 小时的排错经历

名为 CST 的时区是一个很混乱的时区,在与 MySQL 协商会话时区时,Java 会误以为是 CST -0500,而非 CST +0800
CasparLi 发布于 18小时前 阅读 4

pgbouncer安装配置过程

该文记录pgbouncer的安装配置详细过程以及使用方法
VITO_ch123 发布于 19小时前 阅读 3

说一说最近建立数据集市的一些感触

这几天整理用户相关信息的感触,几乎没有人能在一开始就能建立起非常好用的表,正常都会经过一段时间使用,有一定积累。然后站在一个高处,来审视整个仓库,一条线一条线梳理,就会发现有不少的badcase ,然后思考之前为什么会这么建?处于什么考虑建了这么多重复的表?或者建了一个几乎不被使用的表 是因为业务数据的先天原因,还是其他原因?还有没有更好的办法来解决这些事情? 如果有了一些办法后,就要评估这些办法跟目前的情况相比之下的优越处在哪里?可以通过统计出一些数据来说明这个问题。。如果目前的办法确实比现在的要好,那当然要好不犹豫替换现在一团糟数据表   另外也要有足够的自信,相信自己能做好这件事
小萝卜_ 发布于 21小时前 阅读 4

MySQL 锁之死锁

死锁在生产环境中其实是不可避免,但是我们可以尽可能的减少死锁的出现。另外一个系统中如果经常出现死锁,那肯定是有问题的 ,如果偶尔出现可以忽略的
learn_more 发布于 22小时前 阅读 6

Druid 加密数据库密码 (仅需两步)

Druid 加密数据库密码 ,以免明文展示容易被查看到
Alexdevlin 发布于 23小时前 阅读 11

Mysql索引及优化(持续更新)

当人们谈论索引的时候,如果没有特别指明类型,多半说的是B-Tree索引(Mysql的InnoDB使用的B-Tree)。本篇文章讨论的是B-Tree索引,同时也适用于B+Tree。 什么时候是有效的索引: 假设现在有一个人员信息表,字段包括id,姓,名,生日,性别等。 表中的信息有:1,guo,jing,1678-06-24,男                         2,sima,xiangru,1978-08-06,男                         3,dongfang,bubai,1579-07-02,男                         4,sima,yi,1479-08-04,男                         5,hua,mulan,1728-09-10,女... 建立联合索引:key(姓,名,生日).        索引有效: 全值匹配:全值匹配值得是和索引中的所有列进行匹配,例如查找姓名为司马相如,日期是1978-08-06的人。(where xing='sima' and  ming='xiangru' and date='1978-08-06') 匹配最左前缀:查找所有姓 sima 的人,即只使用索引的第一列。 匹配列最前缀:可以匹配某一列的值的开头部分,用于姓开头为sima的,这里也只使用索引的第一列。 匹配范围值:查找姓在dongfang和sima之间的人,也只是用...
扬花落尽丶 发布于 2天前 阅读 12

Java连接sqlserver

有实例名称和实例名的链接
爱运动的小乌龟 发布于 2天前 阅读 3

SQL语句面试题目:一般查询和高级子查询

几个表 employees 表:  EMPLOYEE_ID              NUMBER(6)  FIRST_NAME                VARCHAR2(20)  LAST_NAME                 VARCHAR2(25)  EMAIL                               VARCHAR2(25)  PHONE_NUMBER       VARCHAR2(20)  HIRE_DATE                  DATE  JOB_ID                            VARCHAR2(10)  SALARY                         NUMBER(8,2)  COMMISSION_PCT     NUMBER(2,2)  MANAGER_ID              NUMBER(6)  DEPARTMENT_ID       NUMBER(4)    jobs 表:  JOB_ID                   VARCHAR2(10)  JOB_TITLE            VARCHAR2(35)  MIN_SALARY       NUMBER(6)  MAX_SALARY     NUMBER(6)   departments 表:  DEPARTMENT_ID      NUMBER(4)  DEPARTMENT_NAME VARCHAR2(30)  MANAGER_ID              NUMBER(6)  LOCATION_ID           NUMBER(4)  loc...
梦梦阁 发布于 2天前 阅读 8

JAVA中使用Jedis操作Redis

进入官网可以看到操作redis的语言非常多,我使用的是java语言,这里选取热门的jedis进行操作
大大的微笑 发布于 2天前 阅读 7 评论 1

Redis初步了解

关系型数据库永远是应用的瓶颈,在当前这个大数据时代,关系型数据库在数据量达到百万级以上性能明显降低,非关系型数据库像redis官网测试读写能到10万左右,刚好可以弥补关系型数据库的不足.
大大的微笑 发布于 2天前

查询每类商品中最新的五条数据

select * from(    select row_number() over(partition by site_code order by site_code desc)as rowindex,*     from t_dusty_monitor_factor_rtdata) a   where rowindex<6  
springAndMybaties 发布于 2天前 阅读 6

mysql replace实例说明

mysql replace实例说明
轩辕剑 发布于 2天前 阅读 3 打赏 1

Oracle11g字符集更改为AL32UTF8

修改Oracle数据库的字符集为UFT-8
pmos 发布于 2天前 阅读 8

[转]PostgreSQL分区表(Table Partitioning)应用

一、简介   在数据库日渐庞大的今天,为了方便对数据库数据的管理,比如按时间,按地区去统计一些数据时,基数过于庞大,多有不便。很多商业数据库都提供分区的概念,按不同的维度去存放数据,便于后期的管理,PostgreSQL也不例外。   PostgresSQL分区的意思是把逻辑上的一个大表分割成物理上的几块儿。分区不仅能带来访问速度的提升,关键的是,它能带来管理和维护上的方便。   分区的具体好处是: 某些类型的查询性能可以得到极大提升。 更新的性能也可以得到提升,因为表的每块的索引要比在整个数据集上的索引要小。如果索引不能全部放在内存里,那么在索引上的读和写都会产生更多的磁盘访问。 批量删除可以用简单的删除某个分区来实现。 可以将很少用的数据移动到便宜的、转速慢的存储介质上。   在PG里表分区是通过表继承来实现的,一般都是建立一个主表,里面是空,然后每个分区都去继承它。无论何时,都应保证主表里面是空的。   小表分区不实际,表在多大情况下才考虑分区呢?PostgresSQL官方给出的建议是:当表本身大小超过了机器物理内存的实际大小时(the size of the table should exceed the physical memory of the database server),可以考虑分...
m_lm 发布于 2天前 阅读 5

大容量类 Redis 存储的场景补充-pika

导读 我们在《大容量类 Redis 存储 — 有关 pika 的一切》里介绍过pika的诞生、pika的特点、pika的核心以及pika的使用。文章中非常详细的解析了pika同步逻辑中的重要文件:“write2file”的数据存储方式及实现原理,非常值得一看! pika pika 是 360 Web 平台部 DBA 与基础架构组合作开发的大容量类 Redis 存储,pika 的出现并不是为了替代 Redis,而是 Redis 的场景补充。pika 力求在完全兼容 Redis 协议、继承 Redis 便捷运维设计的前提下通过持久化存储的方式解决 Redis 在大容量场景下的问题,如恢复时间慢、主从同步代价高、单线程相对脆弱、承载数据较有限、内存成本高昂等。 pika主从复制原理之binlog binlog相关的文件包含两部分: manifest和write2file,其中manifest记录了日志元信息,包括当前日志文件编号、当前日志文件偏移量,write2file+num记录了pika接收到的所有redis写命令、参数。 文件格式 manifest文件格式: 日志偏移量(8字节)|con_offset(8字节,未使用)|元素个数(4字节,未使用)|日志文件编号(4字节)。 Binlog文件格式: Binlog文件固定大小为100MB,每个Binlog文件由多个Block组成,每个Block大小固定为64KB,每一个写redis命令称为一个Record。一个...
问题终结者 发布于 2天前 阅读 6

SqlDbx 连接mysql 数据库

SqlDbx 连接mysql 数据库: http://www.docin.com/p-352527140.html
fgly 发布于 2天前 阅读 3

psql: FATAL: database “<user>” does not exist

转自 : https://stackoverflow.com/questions/17633422/psql-fatal-database-user-does-not-exist   Login using default template1 database: #psql -d template1 #template1=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+----------+-------------+-------------+--------------------- postgres | gogasca | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | gogasca | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca + | | | | | gogasca=CTc/gogasca template1 | gogasca | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca + | | | | | gogasca=CTc/gogasca (3 rows) Create a database with your userId: template1=# CREATE DATABASE gogasca WITH OWNER gogasca ENCODING 'UTF8'; CREATE DATABASE Quit and then login again template1=# \q gonzo:~ gogasca$ psql -h localhost psql (9.4.0) Type "help" for help. ...
LuXing 发布于 3天前 阅读 20

sql 更新某一列的序号

原文:https://my.oschina.net/gtwo 举例: 原表如下图,假设该表为试卷题目表, questionScores:分数 orderBy:题目显示顺序 SELECT * FROM contest_detail WHERE contestId=3 现在需要优先显示5分的题目,所以要重新修改orderBy的值 运行下面sql语句 set @no=0; UPDATE contest_detail SET orderBy=(@no:=@no+1) WHERE contestId=3 ORDER BY questionScores,orderBy 再查看一下效果  
Gtwo 发布于 3天前 阅读 5

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

浅析开源数据库MySQL架构

数据库是所有应用系统的核心,故保证数据库稳定、高效、安全地运行是所有企业日常工作的重中之重。数据库系统一旦出现问题无法提供服务,有可能导致整个系统都无法继续工作。所以,一个成功的数据库架构在高可用设计方面也是需要充分考虑的。下面就为大家介绍一下如何构建一个高可用的MySQL数据库系统。 做过DBA或者是运维的同学都应该知道,任何设备或服务,存在单点就会带来巨大风险,因为这台物理机一旦宕机或服务模块crash,若在短时间内无法找到替换的设备,势必会影响整个应用系统。因而如何保证不出现单点就是我们的重要工作,使用MySQL高可用方案可以很好地解决这个问题,一般有以下几种: 一、利用MySQL自身的Replication来实现高可用 MySQL自带的Replication就是我们常说的主从复制(AB复制),通过对主服务器做一个从机,在主服务器宕机的情况下快速地将业务切换到从机上,保证应用的正常使用。利用AB复制做高可用方案也分为几种不同的架构: 1、常规的MASTER---SLAVE解决方案 普通的MASTER---SLAVE是目前国内外大多数中小型公司最常用的一种架构方案,主要的好处就是简单、使用设备较少(成本较低)、维护方便。这种架构能解决单点的问题,而且还能在很大程度上...
illy安智 发布于 1周前 阅读 1927 评论 5 点赞 1

MySQL 死锁与日志二三事

最近线上 MySQL 接连发生了几起数据异常,都是在凌晨爆发,由于业务场景属于典型的数据仓库型应用,白天压力较小无法复现。甚至有些异常还比较诡异,最后 root cause 分析颇费周折。那实际业务当中咱们如何能快速的定位线上 MySQL 问题,修复异常呢?下文我会根据两个实际 case,分享下相关的经验与方法。 1、Case1:部分数据更新失败 某天渠道同学反馈某报表极个别渠道数据为 0,大部分渠道数据正常。这个数据是由一个统计程序每天凌晨例行更新的,按理来说,要么全部正常,要么全部失败,那会是什么原因导致极个别数据异常呢? 首先我们能想到的自然是根据统计任务日志来看了,但是看了统计程序打印的日志没有发现诸如 SQL update 失败的异常描述,那当时的数据库究竟发生了什么呢?在查看 MySQL-server 日志之前,习惯性的看了下数据库状态: SHOW ENGINE INNODB STATUS\G 恰好看到了凌晨这个 update 发生了死锁: ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2017-07-17 04:09:01 0x7f6de03c8700 *** (1) TRANSACTION: TRANSACTION 215208479, ACTIVE 0 sec fetching rows mysql tables in use 3, locked 3 LOCK WAIT 5 lock stru...
xrzs 发布于 2个月前 阅读 7863 评论 9 点赞 17 打赏 1

数据库中间件 MyCAT 源码分析 —— SQL ON MongoDB

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. 查询操作](#) - [4. 插入操作](#) - [5. 彩蛋](#) ------- # 1. 概述 可能你在看到这个标题会小小的吃惊,MyCAT 能使用 MongoDB 做数据节点。是的,没错,确实可以。 吼吼吼,让我们开启这段神奇的“旅途”。 本文主要分成四部分: 1. 总体流程,让你有个整体的认识 2. 查询操作 3. 插入操作 4. 彩蛋,😈彩蛋,🙂彩蛋 建议你看过这两篇文章(_非必须_): 1. [《MyCAT 源码分析 —— 【单库单表】插入》](http://www.yunai.me/MyCAT/single-db-single-table-insert/?self) 2. [《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?self) # 2....
芋艿V 发布于 2个月前 阅读 1717 评论 18 点赞 2

数据库中间件 MyCAT源码分析 —— 跨库两表Join

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. ShareJoin](#) - [3.1 JoinParser](#) - [3.2 ShareJoin.processSQL(...)](#) - [3.3 BatchSQLJob](#) - [3.4 ShareDBJoinHandler](#) - [3.5 ShareRowOutPutDataHandler](#) - [4. 彩蛋](#) ------- # 1. 概述 MyCAT 支持跨库表 Join,目前版本仅支持跨库**两**表 Join。虽然如此,已经能够满足我们大部分的业务场景。况且,Join 过多的表可能带来的性能问题也是很麻烦的。 本文主要分享: 1. 整体流程、调用顺序图 2. 核心代码的分析 前置阅读:[《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?yunai)。 OK,Let's Go。 # 2. 主流程 当执行...
芋艿V 发布于 2个月前 阅读 1428 评论 1 点赞 3

如何理解并正确使用MySql索引

1、概述 索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构 2、索引的优点 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度 2、帮助服务器避免排序和临时表 3、可以将随机I/O变为顺序I/O 3、索引的创建 3.1、主键索引 ALTER TABLE 'table_name' ADD PRIMARY KEY 'index_name' ('column'); 3.2、唯一索引 ALTER TABLE 'table_name' ADD UNIQUE 'index_name' ('column'); 3.3、普通索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column'); 3.4、全文索引 ALTER TABLE 'table_name' ADD FULLTEXT 'index_name' ('column'); 3.5、组合索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column1', 'column2', ...); 4、B+Tree的索引规则 创建一个测试的用户表 DROP TABLE IF EXISTS user_test; CREATE TABLE user_test( id int AUTO_INCREMENT PRIMARY KEY, user_name varchar(30) NOT NULL, sex bit(1) NOT NULL DEFAULT b'1', city varc...
FEINIK 发布于 2个月前 阅读 6279 评论 24 点赞 29 打赏 2

MySQL基于gtid特性与xtrabackup的数据恢复

通过备份文件新建从库,将binlog跑到指定的gtid位置,可以将数据恢复到指定的时间点。
o翡翠谷o 发布于 3个月前 阅读 1854 评论 2 点赞 2

对MySQL交换分区的实践

前言 在介绍交换分区之前,我们先了解一下 mysql 分区。 数据库的分区有两种:水平分区和垂直分区。而MySQL暂时不支持垂直分区,因此接下来说的都是水平分区。水平分区即:以行为单位对表进行分区。比如:按照时间分区,每一年一个分区等。 在MySQL中,分区是可以交换的,可以将一个分区表中的一个分区和一个普通表中的数据互换。   交换分区的实现 1、交换分区的语法 alter table pt exchange partition p with table nt; 解释: 将 分区表pt 的 分区p 和 一个普通表nt 中的数据 进行互换。 交换的前提条件: 普通表nt 不为临时表,且不是分区表。 表结构和分区表pt的结构一致。 普通表nt 没有外键引用。 普用表nt 若为非空。在MySQL5.6以及之前的版本,必须在分区的范围内;在MySQL5.7之后则可以不再其分区范围内,也依然会成功存入该分区中。 2、实验 交换分区 (1) 创建一个分区表,并插入数据 # 创建一个 分区表e CREATE TABLE e ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30) ) PARTITION BY RANGE (id) ( PARTITION p0 VALUES LESS THAN (50), PARTITION p1 VALUES LESS THAN (100), PARTITION p2 VALUES LES...
star_glm 发布于 3个月前 阅读 1962 评论 4 点赞 4

三篇文章了解 TiDB 技术内幕 —— 谈调度

任何一个复杂的系统,用户感知到的都只是冰山一角,数据库也不例外。 前两篇文章介绍了 TiKV、TiDB 的基本概念以及一些核心功能的实现原理,这两个组件一个负责 KV 存储,一个负责 SQL 引擎,都是大家看得见的东西。在这两个组件的后面,还有一个叫做 PD(Placement Driver)的组件,虽然不直接和业务接触,但是这个组件是整个集群的核心,负责全局元信息的存储以及 TiKV 集群负载均衡调度。 本篇文章介绍一下这个神秘的模块。这部分比较复杂,很多东西大家平时不会想到,也很少在其他文章中见到类似的东西的描述。我们还是按照前两篇的思路,先讲我们需要什么样的功能,再讲我们如何实现,大家带着需求去看实现,会更容易的理解我们做这些设计时背后的考量。 # 为什么要进行调度 先回忆一下第一篇文章提到的一些信息,TiKV 集群是 TiDB 数据库的分布式 KV 存储引擎,数据以 Region 为单位进行复制和管理,每个 Region 会有多个 Replica(副本),这些 Replica 会分布在不同的 TiKV 节点上,其中 Leader 负责读/写,Follower 负责同步 Leader 发来的 raft log。了解了这些信息后,请思考下面这些问题: * 如何保证同一个 Region 的多个 Replica 分布在不同的节点上?更进一...
TiDB 发布于 4个月前 阅读 1074 评论 3 点赞 1

Mongodb高可用集群搭建

最近公司项目要求Mongodb集群且高可用,在查询了一系列文章,再结合项目实际情况,所以采用了这一套高可用集群方案
Crazy_Coder 发布于 4个月前 阅读 1949 评论 5 点赞 7

实验:MySQL使用JDBC执行批处理性能测试

实验:MySQL使用JDBC执行批处理性能测试
IamOkay 发布于 6个月前 阅读 1953 评论 10 点赞 6

记一次mysql性能优化过程

所谓mysql的优化,三分是配置的优化,七分是sql语句的优化,通过一些案例分析,希望给大家在工作中带来一些思路
成熟的毛毛虫 发布于 7个月前 阅读 6270 评论 57 点赞 36 打赏 3

NoSQL介绍

对nosql出现背景、nosql类型做介绍,并解答nosql相关问题
你我他有个梦 发布于 7个月前 阅读 1552 评论 1 点赞 4

Linux服务器安装Oracle服务端总结

通过ssh远程连接linux服务器,上传Oracle11g的安装包,在无图形化界面的情况,安装Oracle服务器端。本例中linux服务器系统为CentOS6.5.
黎嘉诚 发布于 8个月前 阅读 3416 评论 27 点赞 3

【技术解密】SequoiaDB复制组选举原理说明

1.SequoiaDB介绍 SequoiaDB是国内一款自主研发的分布式文档型数据库。它与过去开发者所熟悉的关系型数据库不同,它的数据结构是BSON类型,一种与JSON结构非常相近的数据类型。 SequoiaDB与关系型数据库除了在数据类型上有比较明显的差异外,还原生支持分布式存储。用户在搭建一个能够应对海量数据以及包含高并发操作的系统时,不再需要像过去一样,在业务层面做复杂的分表分库工作,直接在定义数据表时,明确告诉数据库此表需要根据哪个字段以及何种规则进行分布式存储,数据分布式存储对于用户来说变得透明。用户可以更加专注以业务逻辑开发,而不是关注如何分表分库。 2.SequoiaDB总体架构介绍   图1:SequoiaDB 总体架构示意图 SequoiaDB整个集群中,主要角色构成是三个,协调节点,编目节点和数据节点。 1.1 协调节点 协调节点(英文称呼为Coord),是SequoiaDB的任务分发节点(一般用户成为Master节点),本身不存储任何数据,主要负责接收应用程序的访问请求。所以一般用户在与SequoiaDB打交道时,访问的都是协调节点,对于其他角色的节点,一般情况下是不建议用户去访问的。 在SequoiaDB老版本中,协调节点在数据库集群中是类似孤岛式部署的。怎么说呢,主要因为...
巨杉数据库 发布于 8个月前 阅读 793 点赞 1

redis 主从配置

redis主从复制过程:  当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将 数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将 文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给slave,后续master将收到的写命令发送给slave。如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像,然后发送给所有的slave。master同步数据时是非阻塞式的,可以接收用户的读写请求。然而在slave端是阻塞模式的,slave在同步master数据时,并不能够响应客户端的查询。 可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化 拥有主从服务器的好处(从服务器是只读的,可以一主多从) 1.    主服务器进行读写时,会转移到从读,减轻服务器压力 2.    热备份 主从都可以设置密码,也可以密码不一致   进入/usr/data/redis/slave 创建 master  slave1  slave2 1.复制redis.conf到3个目录,修改端口 1000,2000,3000 ...
lyg945 发布于 10个月前 阅读 5200 评论 20 点赞 12

Redis基数统计——HyperLogLog小内存大用处

摘自本人 http://irfen.me/redis-hyperloglog-intro/ 我们一直都知道,redis几大常用数据结构,字符串、散列、列表、集合、有序集合。其实后来Redis做了很多补充,其中之一就是HyperLogLog,另外的还有GEO(地理位置),是3.2版本加的。 这里我们就来简单介绍下HyperLogLog结构。 先说用处:这个结构可以非常省内存的去统计各种计数,比如注册ip数、每日访问IP数、页面实时UV(PV肯定字符串就搞定了)、在线用户数等。 这里看到所有的用处都是xxx数,所以这个数据结构的特点就是,可以比较准确的估算出你要统计的数量,但是却无法知道统计的详细内容。比如统计每日访问IP数,可以获取当时访问过的IP总数量,但是没法知道这些IP都是什么。 有得必有失,当然你要统计上面提到的那些内容,可以用集合来处理,这样可以知道数量,也能获得所有的详细列表。但是一个大型的网站,每天IP比如有100万个呢,我们粗算一个IP消耗15字节,那么100万个IP就是15M,如果1千万,就是150M。 再来看看我们的HyperLogLog,在Redis中每个键占用的内容都是12K,理论存储近似接近2^64个值,不管存储的内容是什么。12K,知道这个数据结构的作用了吧。这也是为什么他不能知道里面的详细内容了。这是...
赵伊凡 发布于 11个月前 阅读 2166 评论 1 点赞 3

PingCAP唐刘:基于Raft构建分布式系统TiKV

2016年9月10日,第52期【OSC源创会】在珠海圆满落幕,350余名OSCer齐聚报业大厦,聆听了一场诚意满满的技术分享盛会。本期源创会由5位讲师分别针对5个不同的主题进行分享,为给未能到现场以及参与活动后仍意犹未尽的OSCer更好的了解和学习,开源中国将每位讲师的演讲内容进行了整理,并将逐一发布。干货多多,不容错过! PingCAP 是国内的一家完全走开源路线的 startup,专注于构建下一代分布式数据库及生态系统,代表作品 TiDB。本期源创会,来自 PingCAP 的首席架构师唐刘,对分布式一致性算法 Raft,以及他们是如何使用 Raft 进行分布式系统 TiKV 的开发进行了介绍与分享。 嘉宾介绍: 唐刘,PingCAP 首席架构师,现致力于下一代分布式数据库 TiDB、分布式存储 TiKV 的开发。开源爱好者,Go、Rust 等语言爱好者和实践者。 分享亮点: 1、 Raft 算法将 Server 划分为3种角色,Leader、Follower 和 Follower,每个 Term 至多存在1个 Leader,每个 Server 本地维护 currentTerm。 2、TiKV 和 TiDB可以看作对应着 Google Spanner 和 F1,用 Open Source 方式重建。 3、TiDB 是使用 Go 编写的,TiKV 是用 Rust 编写的,TiDB 在 TiKV 上层。 4、 TiKV 基于 Raft ,每一个 ...
王练 发布于 1年前 阅读 1377 评论 2 点赞 2

MySQL应用优化

本文从MySQL语句优化、引擎选择、数据库设计三个方面介绍如何进行MySQL应用优化
lonelydawn 发布于 1年前 阅读 4079 评论 20 点赞 6

用Haproxy来做PostgreSQL的负载均衡

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,可以用来做web或者数据库的负载均衡,在一定范围内读写能力与添加的服务器数量成正比。haproxy用来做mysql负载均衡的文章很多,这里简单介绍下配合postgresql的使用。 一、环境 Centos 6.7 PostgreSQL 9.5.2 Haproxy 1.6 虚机服务列表 haproxy ip 192.168.226.148 (pg agent) datanode1 ip 192.168.226.133 (pg server) datanode2 ip 192.168.226.143 (pg server) 二、软件安装 #yum install gcc gcc-c++ make #groupadd haproxy #useradd haproxy –g haproxy -s /sbin/nologin #wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.4.tar.gz #cd haproxy-1.6.4 #make TARGET=linux2628 PREFIX=/usr/local/haproxy #make install PREFIX=/usr/local/haproxy #mkdir -p /etc/haproxy/ #cp examples/haproxy.init /etc/init.d/haproxy #chmod +x /etc/init.d/haproxy #ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/ 三、软件配置 1.主要配置文件haproxy.cfg [root@localhost ~]# vi /etc/haproxy/haproxy.cfg global log 127.0.0.1 local0 info maxconn 4096 user haproxy group haproxy dae...
kenyon_君羊 发布于 1年前 阅读 5159 评论 25 点赞 10

Couchbase 中的分布式储存

Couchbase 是一个具有高性能、可扩展性和可 用性强的数据库引擎。它可以让开发人员通过 NoSQL 的键值存储(二进制或者JSON)或者使用 N1QL 的形式对数据进行操作(N1QL 是非常类似于 SQL 的一种语法操作 JSON 数据的方式)。以现在整体架构来看,Couchbase 是往分布式数据库的方向发展下去。
极光推送 发布于 2年前 阅读 1763 评论 2 点赞 8
顶部