数据结构与算法

MySQL 查询优化(八):分组查询该怎么优化?

分组查询 MySQL 在处理 GROUP BY 和 DISTINCT 查询的方式在大多数情况下类似,事实上,在优化过程中有时候会把在这两种方式中转换。两类查询都能够从索引中受益,通常,这也是优化这两种查询最为重要的方式。 在无法使用索引时,MySQL 对于 GROUP BY 查询有两种策略:使用临时表或者 filesort 执行分组。对于给定的查询,两种方式都没法更高效。我们可以通

一些Hive知识点记录

Hive Hive是读时模式: 在传统数据库里,表的模式是在数据加载时强制确定的。如果在加载时发现数据不符合模式,则被拒绝加载数据。 因为数据是在写入数据库是对照模式进行检查,因此这一设计有时被称为“写时模式”(schema on write)。 Hive这种类型的数据处理模式对数据的验证并在不加载数据时进行,而在查询时进行。这称为“读时模式”(schema on read) Hive会为每个数据

MongoDB 实用数组聚合操作 (3)

前言 MongoDB 提供了 aggregate 聚合操作函数对多个文档进行筛选、排序、统计等操作,这些操作可以在上两篇中查看: MongoDB 实用数组聚合操作 (1) MongoDB 实用数组聚合操作 (2) 本篇是聚合操作的最后一篇,将介绍如何在聚合操作中实用条件比较。 对字段做布尔转换 使用$project 操作符时,可以对字段进行条件比较,从而转为布尔值,例如将年龄转换为是否超过30

SpringBoot+Neo4j实现系统架构的可视化

上一篇文章中我们介绍了《基于Neo4j图数据库实现系统架构可视化》,但是只介绍了使用Cypher语言在Neo4j的浏览器中执行增删查改的操作,现在我们想要基于SpringBoot来实现代码层面的增删查改。 一、环境搭建 最便捷的方式就是访问start.spring.io,新建一个项目,选择的依赖有: spring-boot-starter-data-neo4j spring-boot-start

6 个意想不到的 JavaScript 问题

作为前端开发工程师,JavaScript 是我们的主要开发语言,它本身语法比较简单,并且生态系统也非常完善,在社区的影响力越来越大。 在我们使用过程中,经常会遇到各种奇怪的问题,让我们经常摸不着头脑。 本文灵感来自 wtfjs,整理了 6 个比较常见并且很有意思的问题。 1. 奇怪的 try..catch ❓问题 下面代码执行后将返回什么?2 还是 3? (() => { try {

【es】Elasticsearch如何保证数据不丢失?

我们大概已经知道了 Elasticsearch处理数据的流程,其中在Elasticsearch和磁盘之间还有一层称为FileSystem Cache的系统缓存,正是由于这层cache的存在才使得es能够拥有更快搜索响应能力。 我们都知道一个index是由若干个segment组成,随着每个segment的不断增长,我们索引一条数据后可能要经过分钟级别的延迟才能被搜索,为什么有种这么大的延迟,这里面的

架构师自诉:如何做到百万数据半小时跑批结束

业务背景 跑批通常指代的是我们应用程序针对某一批数据进行特定的处理 在金融业务中一般跑批的场景有分户日结、账务计提、欠款批扣、不良资产处理等等 具体举一个例子 🌰 客户在我司进行借款,并约定每月 10 号码还款,在客户自主授权银行卡签约后 在每月 10 号(通常是凌晨)我们会在客户签约的银行卡上进行扣款 然后可能会有一个客户、两个客户、三个客户、四个客户、好多个客户都需要进行扣款,所以这一“批”

Flask教程(二)

一、Flask的数据库SQLAlchemy 1.1 SQLAlchemy简介:                 SQLAlchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。                 flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。 1.2 SQLAlchemy的使用: 1.2.1安装导入:    安装fla

MySQL Explain

mysql执行计划 在日常工作中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。 官网地址: 1、执行计划中包含的信息