数据库

用 Elasticsearch 解决 MySQL/MariaDB 的 LIKE %Keyword% 中英文混合查询问题

例如有电子产品型号和参数等属性表,需要输入完整或不完整型号或参数,可以使中文或部分英文,查询百万数量级电子器件。 这样查关系数据库的弊端是,当数据量到数百万级时,无论是使用全文检索,还是 LIKE 查询,或分字段 OR 或者 UNION,或者拆表等各种方案,查询耗时均超过 2 秒,用户体验上难以接受。这时,我们排除 SQL Server/Oracle 等商业数据库,可替换更高性能的数据库 PostgreSQL,DB2 Express 缩短查询时间,还可替换 MongoDB 勉强解决,但更佳方案是用 Elasticsearch 来实现。

在 CentOS 7 下安装 SQL Server 2017 及创建 PHP 测试程序

SQL Server 是微软公司 Windows 上闭源数据库,当微软拥抱了开源,SQL Server 也被移植到 Linux,有时,我们还会需要通过 PHP 连接 SQL Server 来进行应该开发。 本文旨在帮助读者在 CentOS 7 下顺利安装 SQL Server 及 PHP 连接驱动,本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下编译安装 Redis 5

Redis 是一个使用标准 C 编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。在 PHP 中普通场景中,通常搭配 Memcached 加上缓存,但如果需要持久化,或拆表,用 Memcached 实现都比较麻烦,尤其当需要更复杂的数据结构时,Memcached 需要自己处理,此时,我们可以使用地球上最快的 K-V 数据库 Redis。比如在 OpenStack 中广泛使用。

在 CentOS 7 下安装 MongoDB 4

MongoDB 是最流行的 NoSQL,其分片集群横向扩展能在一定数量级解决了大数据量增长问题,异构的文档数据也更适合存储实体属性不一致的数据,比如不同类商品及其属性,相比关系数据库,在一定场景下常能用更少的机器支持更重的业务。 本文旨在指导你在 CentOS 7 下安装 MongoDB 4。本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下安装 MySQL 8 及配置

MySQL 数据库软件的背景请参阅《在 CentOS 7 下安装 MariaDB 10.4.7》一文,它目前属于 Oracle 公司,其存储引擎 InnoDB 是最成熟的。Oracle 在 MySQL 的研发资源在近年也有增加的趋势,尤其是最新版更是有可观的进步,所以撰文以表肯定。 本文旨在指导你在 CentOS 7 下安装 MySQL 8。本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下安装 MariaDB 10.4

这个星球的开源事业中,不乏一些技术和商业思维兼具的奇才 Hacker。MariaDB 的 CEO,曾今 MySQL AB 的创始人之一,Monty 就是这样一位商业 Hacker 中的 技术 Hacker。 其技术成就虽不能与奠定计算机工程科学基础的 C 语言、Unix 系统 Hacker 相比,因为他们对软件世界的贡献分属在的不同软件抽象层次,但我们评估其影响力,也可类比同是芬兰的开源项目 Linux 了。 MySQL 之所以重要,是因为它是 LAMP 拼图的一块,它成为了那些年里非商业技术方案中关系型数据库的首选,同时期的 PostgreSQL 略有不敌,它太低调,而 MySQL 和 Apache、PHP 一样,气味相合。 1995年, Michael “Monty” Widenius 和 合伙人一起创立 MySQL AB,2008 年 Sun 收购了 MySQL,后 Sun 被 Oracle 收购,Monty 基于 MySQL 5.5 衍生版开发了 MariaDB(Maria 是 Monty 女儿的名字 ) ,而在 MariaDB 10 是兼容 MySQL 5.6 开发的。 现在的情况是,世界级的大公司为预防 Oracle 将 MySQL 导向封闭,纷纷投资了 MariaDB,比如我们的阿里巴巴就是其股东之一。Linux 世界重要的发行版更是将内置数据库由 MySQL 改为了 MariaDB。 估计 Monty 此生夙愿即 beat Oracle MySQL,用他的话叫做“让 Oracle MySQL 在这个星球上消失 ” 。但随着 MySQL 8 新版的发布,我们发现这真的不容易。但一般我们在技术方案中,不需要利用 MySQL 8 新特性时,通常使用 MariaDB 替代。 本文旨在指导你在 CentOS 7 下升级内置 MariaDB 5.5.60 到最新版本 10.4.7,以受益于 MariaDb 10 的新特性和性能基准。本安装过程应已经过笔者反复测试,以确保成功。 其技术成就虽不能与奠定计算机工程科学基础的 C 语言、Unix 系统 Hacker 相比,因为他们对软件世界的贡献分属在的不同软件抽象层次,但我们评估其影响力,也可类比同是芬兰的开源项目 Linux 了。 MySQL 之所以重要,是因为它是 LAMP 拼图的一块,它成为了那些年里非商业技术方案中关系型数据库的首选,同时期的 PostgreSQL 略有不敌,它太低调,而 MySQL 和 Apache、PHP 一样,气味相合。 1995年, Michael “Monty” Widenius 和 合伙人一起创立 MySQL AB,2008 年 Sun 收购了 MySQL,后 Sun 被 Oracle 收购,Monty 基于 MySQL 5.5 衍生版开发了 MariaDB(Maria 是 Monty 女儿的名字 ) ,而在 MariaDB 10 是兼容 MySQL 5.6 开发的。 现在的情况是,世界级的大公司为预防 Oracle 将 MySQL 导向封闭,纷纷投资了 MariaDB,比如我们的阿里巴巴就是其股东之一。Linux 世界重要的发行版更是将内置数据库由 MySQL 改为了 MariaDB。 本文旨在指导你在 CentOS 7 下升级内置 MariaDB 5.5.60 到最新版本 10.4.7,以受益于 MariaDb 10 的新特性和性能基准。本安装过程应已经过笔者反复测试,以确保成功。