TAG: database

Postgres 全文本搜索已经足够好了(二)

当你要建立一个 web 应用程序时,您通常要添加搜索功能。我们添加搜索功能时甚至不知道我们将要搜索的东西。搜索已成为一项重要的功能,我们看到很多工具用户量非常大,如:elasticsearch和SOLR他们都基于 lucene,他们是伟大的工具,但在使用这种重量级、大规模毁灭性搜索武器之前,也许你的需要是轻量级的足够用的搜索工具 !

最后更新时间: 共 15 次浏览 Tags: postgresql database

Postgres 全文本搜索已经足够好了(一)

当你要建立一个 web 应用程序时,您通常要添加搜索功能。我们添加搜索功能时甚至不知道我们将要搜索的东西。搜索已成为一项重要的功能,我们看到很多工具用户量非常大,如:elasticsearch和SOLR他们都基于 lucene,他们是伟大的工具,但在使用这种重量级、大规模毁灭性搜索武器之前,也许你的需要是轻量级的足够用的搜索工具 ! !

最后更新时间: 共 15 次浏览 Tags: postgresql database

SQL JOIN 简单介绍

为什么需要join?join中文意思为连接,连接意味着关联即将一个表和多个表之间关联起来。在处理数据库表的时候,我们经常会发现,需要从多个表中获取信息,将多个表的多个字段数据组装起来再返回给调用者。所以join的前提是这些表之间必须有关联字段。

最后更新时间: 共 11 次浏览 Tags: mysql database

Java 程序员写 SQL 时易犯的另外 10 个错误

Java 程序员编写 SQL 时容易出现的错误远远不止之前一篇Java 程序员写 SQL 时易犯的 10 个错误那些,因此在这篇文章中我将列举另外 10 个 Java 程序员编写 SQL 时容易出现的有趣的错误。

最后更新时间: 共 38 次浏览 Tags: java database

Java 程序员写 SQL 时易犯的 10 个错误

Java 开发人员会混合面向对象思维和命令行思维,这与他们的工作经验和能力相关。不过,当 Java 开发人员编写 SQL 时,一切都变了。SQL 是声明式语言,它没有任何面向对象和命令行的编程思想。使用 SQL 可以非常容易的编写传。在SQL中要写个查询语句是很简单的。但在Java里类似的语句却不容易,因为程序员不仅要反复考虑编程范式,而且也要考虑算法的问题。

最后更新时间: 共 48 次浏览 Tags: java database

行值表达式和 NULL 断言

行值表达式是 SQL 中非常强大的功能。因为标准SQL的初期,他们已经出现了,比如:SQL 1992,即使不是所有的数据库正确实现这个功能,直到今天。

最后更新时间: 共 9 次浏览 Tags: database

比较 MySQL 中的 NOT IN, NOT EXISTS, LEFT JOIN / IS NULL

当你被 Orace 的神话般的查询转换功能和优秀的基于成本的查询优化器宠坏了时,那么你可能会忘记在“旧时代”或针对那些相对简单的数据库的 SQL 查询调优是多么困难。下面是如何在 MySQL 中实现 ANTI-JOIN 的各种方法的详细介绍

最后更新时间: 共 17 次浏览 Tags: database mysql

SQLite中的B-Tree实现细节

SQLite在存储在外部的数据库是以B-Tree来组织的。基本思想是文件包含的每一页都包括N个数据库入口和N+1个指向子页的指针。文件分成很多页存储。为什么这么干,因为内存分页管理机制闹得。外存中每个页就是B树的一个节点。

最后更新时间: 共 54 次浏览 Tags: database sqlite

MySQL 的 innodb 扩容、ibdata1 瘦身

为了添加一个数据文件到表空间中,首先要关闭 MySQL 数据库,编辑 my.cnf 文件,确认innodb ibdata文件的实际情况和my.cnf的配置是否一致,这里有两种情况:

最后更新时间: 共 16 次浏览 Tags: database mysql

MySQL 的 InnoDB 表类型

之前我们介绍了 HEAP 表类型,一种将数据保存在内存中的表类型,这篇文章中我们将介绍 InnoDB 表类型。标准的 MyISAM 表类型是网站应用的理想类型,因为相对于写来说读会更多,并且不需要事务支持。当然如果不适用这些条件时候,InnoDB 表可能就是最好的选择了。这篇文章面向哪些非常数据 MySQL ,但仅使用 MyISAM 表类型的用户。

最后更新时间: 共 37 次浏览 Tags: database mysql

优化 MySQL:查询和索引

你遇到过这种场景,数据库太慢了!查询队列阻塞,backlog 增长,新的连接被拒绝。管理层打算花费数百万美元“升级”到其他的数据库系统,然而这写问题仅仅是没有正确的使用 MySQL,糟糕的表定义或者没有使用 MySQL 索引是性能问题的主要原因之一,而修正这些问题往往能得到显著的性能提升

最后更新时间: 共 45 次浏览 Tags: database mysql

优化 MySQLd:硬件以及 MySQLd 配置变量

就像赛车手需要在赛道外完成很多工作一样,如果你一开始没有为比赛努力工作,那么一旦比赛开始后你如何努力都不会有好的收获,你会始终落后无法赢得比赛。同样,通过正确的方式开始使用 MySQL 也是非常重要的:正确的编译 MySQL。当然你会根据安装需要使用特定的配置参数,不过下面几个要点对你会有些帮助的

最后更新时间: 共 46 次浏览 Tags: database mysql

update 子查询使用介绍

在非关联子查询中,内部查询只执行一次并返回它的值给外部查询,然后外部查询在它的处理中使用内部查询返回给它的值。而在关联子查询中,对于外部查询返回的每一行数据,内部查询都要执行一次。另外,在关联子查询中是信息流是双向的。外部查询的每行数据传递一个值给子查询,然后子查询为每一行数据执行一次并返回它的记录。然后,外部查询根据返回的记录做出决策。

最后更新时间: 共 39 次浏览 Tags: database

MySQL 的表类型 - HEAP 表类型

我们都知道访问内存中的数据比访问磁盘中的数据要快很多。因此,基于这个思路,是否 有可能让 MySQL 将数据竟可能多的保存在内存中呢?答案当然是:yes!并且 MySQL 有很多办法可以做到,查询缓存,将所有索引保存在内存中,或者更极端的,将整张表保存在内存中。本文的后续部分,将会介绍 HEAP 表类型,可以将表保存在内存中。

最后更新时间: 共 39 次浏览 Tags: database mysql

MySQL 5 存储引擎

MySQL 5 提供了一些新的存储引擎(以前称作表类型)。除了默认的 MyISAM 、InnoDB、BDB、HEAP 以及 MERGE 存储引擎以外,还增加了 4 种新的类型:CSV、ARCHIVE\FEDERATED 和 EXAMPLE, 以及 HEAP 存储引擎的新名字,现在它称作 MEMORY 存储引擎。任何一个新的类型都不是默认的存储引擎,你可以使用 SHOW ENGINES 语句检查可用的存储引擎,下面是我的 MySQL Max 默认版上的输出结果:

最后更新时间: 共 35 次浏览 Tags: database mysql

数据库安装包和升级包脚本工具RedGate使用介绍

在产品的开发和版本更新过程中,数据库的结构难免会一直发生变化。为了尽量减少升级时的工作量,设计一个好的数据库升级方式就显得很重要。在设计数据库安装包时,既要考虑到全新安装时如何生成默认数据,也要考虑从老版本升级时旧的数据如何迁移如有必要)。 基本上,安装包可以分成三个部分:Pre-script,数据库安装或升级和Post-script。

最后更新时间: 共 35 次浏览 Tags: database

Oracle 11.2 中的压缩和高级压缩

在之前的文章中,我们讨论了 Hybrid Columnar Compression -- 针对 Exadata 和 使用 Exadata storage 系统的压缩方式。当然这不是唯一的压缩选项,还有另外两种:BASIC 和 OLTP,他们并不是高级压缩方式并且可以在 non-Exadata storage 上使用。让我们再回顾一下 HCC 的选项并且与 BASIC 和 OLTP 进行比较。我们将从 BASIC 和 OLTP 压缩开始然后再回顾 HCC 压缩类型。

最后更新时间: 共 28 次浏览 Tags: database oracle

深入 Oracle 基础压缩(Basic Compression)

在前一篇文章中我们讨论了一些压缩方式,现在是时候讨论一下 Oracle 如何进行 BASIC 压缩了。它实际上并不是真正的压缩,不过它确实可以节省哪些不会被使用的数据所占的空间。让我们来看看 Oracle 如何减少你数据所占用的空间吧。

最后更新时间: 共 23 次浏览 Tags: database oracle