消息队列学习笔记 - 基本概念和用法

前言 消息队列是一种常见的通信模式,用于在分布式系统中传递消息。它提供了一种可靠的、异步的通信方式,使得不同组件或服务之间可以解耦并以高效的方式进行通信。本文将介绍消息队列的定义、基本概念,并提供代码示例来帮助我们更好地理解消息队列的工作原理。此外,我们还将介绍五种常用的消息队列及其用法。 什么是消

PostgreSQL 学习笔记 - 存储过程、触发器和自定义函数

本文探讨了PostgreSQL中的存储过程、触发器和自定义函数,旨在帮助读者理解和应用这些高级功能。存储过程用于封装复杂的数据操作,可以提高性能和安全性;触发器在数据操作时自动执行特定逻辑,确保数据完整性;自定义函数实现用户定义的可重用代码块,简化复杂计算。文中提供了详细的代码示例,展示如何使用这些功能,以提升开发效率和数据库管理能力。

Docker从入门到实践

Docker是一个开源的应用容器引擎,通过将应用及其依赖打包为轻量级的容器,简化了项目的部署和运行。使用Docker能解决传统部署中的效率低下、环境一致性差、迁移成本高等问题。它具有轻量性、可移植性、一致性和隔离性等优势,并支持易于扩展的架构。Docker的基本概念包括镜像、容器和仓库,以及常用命令如docker build、docker run等,方便用户管理容器化应用。

Docker 

PostgreSQL 学习笔记 - 视图、物化视图和临时表

PostgreSQL 是一种广泛使用的开源关系型数据库管理系统,本文探讨了视图、物化视图和临时表的概念及其应用。视图是基于查询结果的虚拟表,可简化查询操作;物化视图则实际存储查询结果,以提高性能,但需要定期刷新;临时表只在当前会话中存在,适合临时数据存储。通过理解这些工具,用户可以更有效地管理和操作数据。

PostgreSQL 学习笔记 - 事务和锁

本文介绍了PostgreSQL中的事务管理及锁机制。事务是由一组数据库操作组成,保证数据的一致性和完整性。使用BEGIN、COMMIT和ROLLBACK语句管理事务,确保在发生错误时进行回滚。此外,事务的隔离级别定义了并发访问中能见到的更改程度,包括READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。锁机制控制对共享资源的访问,包括共享锁和排他锁,确保并发操作的安全性。示例代码展示了事务和锁的使用技巧。

PostgreSQL 学习笔记 - 执行计划

PostgreSQL执行计划是查询优化器生成的详细查询执行方案,帮助用户了解查询执行过程并识别性能瓶颈。生成过程包括语法分析、语义分析、优化和执行。使用EXPLAIN命令可查看执行计划的访问方式、成本估计、行数和过滤条件等信息。优化执行计划的常用技巧包括使用索引、限制查询列、运用LIMIT和OFFSET,以及合理选择JOIN方式等。这些方法有助于提高查询性能和应用响应速度。

PostgreSQL 学习笔记 - 查询优化

PostgreSQL是一款强大的关系型数据库管理系统,提供多种查询优化技术以提升查询性能,包括索引优化和查询优化。索引方面,提供了B树、哈希、GiST和GIN等多种类型,适用于不同场景的查询加速。此外,查询优化建议避免使用SELECT *,利用LIMIT和OFFSET限制查询结果,并采用EXISTS子查询和JOIN查询关联数据。这些技术的应用能够显著提高应用的响应速度,提升数据库的整体效率。

PostgreSQL 学习笔记 - 索引

PostgreSQL是一种强大的开源数据库管理系统,索引是其优化查询性能的重要工具。索引类似于书籍的索引,可以快速查找特定数据。本文介绍了PostgreSQL的主要索引类型,包括B-Tree、哈希、GiST和GIN,并提供了创建索引的示例。优化索引的最佳实践包括仅在必要时创建、选择合适的索引类型、使用复合索引、避免重复索引、定期重建索引和删除不再需要的索引。有效管理索引可以提升数据库查询性能和整体可伸缩性。

PostgreSQL 学习笔记 - 函数和操作符

PostgreSQL是一种开源关系型数据库管理系统,支持多种数据处理函数和操作符。文章介绍了内置的数学、字符串、日期时间和聚合函数,并展示了如何使用自定义函数和聚合函数满足特定需求。此外,窗口函数用于在查询结果不变的情况下计算聚合统计信息。还有操作符的使用,包括算术、逻辑和比较。掌握这些功能有助于提高数据处理效率与准确性。

PostgreSQL 学习笔记 - 窗口函数

PG窗口函数是PostgreSQL中用于数据分析的强大工具,可以对查询结果进行分组、排序和排名等操作。其语法包括“aggregate_function(expression) OVER (PARTITION BY ... ORDER BY ... frame_clause)”,适用于场景如分组计算、排名、分析对比及窗口统计。窗口函数的常用类型有聚合函数、排名函数和窗口函数,支持ROWS和RANGE类型的窗口集合。通过灵活运用窗口函数,可以实现滑动平均、累计求和等高级计算,提高查询效率与精度。

CentOS7 安装 racc gem 报错解决

在CentOS 7上安装racc gem(版本1.4.14)时,出现了构建本地扩展的错误,提示缺少必要的库和头文件,导致无法生成可执行文件。为解决此问题,建议安装glibc开发工具,使用命令“yum install glibc -y”可以完成安装。这将有助于确保racc gem的正常安装和Bundler的顺利运行。

PostgreSQL 学习笔记 - GIN索引(通用倒排索引)

倒排索引是搜索引擎的基础,提升了查询效率。正排索引以文档ID为关键字,定义了文档中每个字的位置信息,检索效率低。倒排索引则以字或词为索引关键字,能有效列出包含查询关键字的所有文档,适合全文检索。GIN(Generalized Inverted Index)索引在PostgreSQL中处理复合类型数据,支持快速全文搜索。尽管数据插入和更新较慢,通过启用fastupdate可以优化更新性能。同时,GIN索引可以支持部分匹配搜索,提高检索速度。

PostgreSQL 学习笔记 - PG索引概论

PostgreSQL提供多种索引类型,包括B-Tree、Hash、GiST和GIN,每种类型适用于不同查询需求。B-Tree索引最常用,支持等于及范围查询,Hash索引仅用于简单等于比较。GiST和GIN支持多种索引策略,适合复杂查询。复合索引可以覆盖多个字段,B-Tree和GIN支持高效率查询,但GiST则受限于首字段。表达式索引和部分索引提高特定查询效率,但维护成本较高。整体而言,合理选择索引类型和使用策略对查询性能至关重要。

PostgreSQL 学习笔记 - 执行计划说明

本文详细解释了PostgreSQL中执行计划的使用和相关命令,包括如何利用EXPLAIN命令查看SQL的执行效率。介绍了多种选项,如ANALYZE、VERBOSE、COSTS等,以及设置调优参数的方法,如启用或禁用特定的查询计划方法。此外,文中还举例说明了如何通过EXPLAIN命令查看全表扫描、索引扫描和位图扫描,并解析了各项成本基准参数的作用和设置原则,以帮助用户优化查询性能。

PostgreSQL 学习笔记 - PG常用命令

本文总结了PostgreSQL中常用的管理和运维命令,包括查看数据库版本、启动时间、配置文件加载时间、数据库列表、当前会话信息及参数配置等。文章详细介绍了如何查询WAL日志、数据库和表的大小、取消长时间运行的SQL命令,并提供了适用于动态和静态参数生效的方法。此外,还介绍了WAL日志的维护和运行监控的基本操作,旨在帮助用户更高效地管理PostgreSQL数据库。

PostgreSQL 学习笔记 - 统计信息说明

统计信息在PostgreSQL数据库中对查询优化至关重要,由autovacuum和stats collector进程负责收集。监控参数控制收集的SQL执行统计信息,而分析过程通过ANALYZE命令或autovacuum触发。负载指标提供对表、索引的访问情况和VACUUM过程的统计数据,帮助管理数据库性能。通过系统表pg_statistic和pg_stats可以获取具体的统计信息,pg_stat_statements则提供了SQL语句级别的监控,支持性能优化。异常情况可手动使用ANALYZE命令更新统计信息。

PostgreSQL 学习笔记 - PG模式与用户管理

模式(schema)是PostgreSQL中用于组织数据库对象的命名空间,允许相同名称的表或函数在不同模式中 coexist。数据库默认创建一个名为“public”的模式,用户可以在此模式中创建和访问对象。PostgreSQL提供了模式搜索路径,通常用户访问的对象位于“public”模式或指定的其他模式。用户的权限管理为对象的创建和访问提供了灵活性,默认情况下,用户在“public”模式下拥有创建和使用权限,且可以使用GRANT和REVOKE命令进行权限的配置与管理。此外,用户和角色的创建及操作涉及对权限的精确管理,包括超级用户、创建数据库及角色等权限。

Android Activity生命周期

Android的Activity生命周期分为正常和异常两种情况。在正常情况下,Activity经历的生命周期方法包括onCreate、onRestart、onStart、onResume、onPause、onStop和onDestroy。每个方法对应不同的状态变化。异常情况下,Activity可能因系统回收或配置变化而被重建,此时需要使用onSaveInstanceState和onRestoreInstanceState方法存储和恢复数据。此外,通过配置AndroidManifest文件中的configChanges属性,可以防止Activity因屏幕旋转等原因被重新创建。

Vue cli3 打包优化

本文介绍了使用Webpack进行Vue CLI 3项目打包优化的多种方法,包括使用webpack-bundle-analyzer进行体积分析、terser-webpack-plugin移除调试信息、配置externals与CDN以减小包体积、代码分割、使用compression-webpack-plugin进行gzip压缩以及babel-plugin-import的按需引入。此外,还探讨了通过hard-source-webpack-plugin实现编译速度优化、缩小文件解析范围和远程组件的打包方法。这些优化手段旨在提升应用性能并降低打包后的文件体积。

Vue 

Android 存储访问框架的使用

存储访问框架(SAF)为Android应用提供了文件选择器和文件操作API,专门设计用于处理非多媒体文件。在Android 11及以后的版本中,由于MediaStore的限制,开发者必须依赖SAF进行文件访问。通过Intent类,应用可以调起系统文件选择器,支持多种文件类型的过滤。此外,SAF允许用户授权对特定文件夹的访问,并提供各种API来操作文件,如重命名、删除或复制文件。SAF与MediaStore的主要区别在于,SAF能够访问所有文件类型,而MediaStore仅限多媒体文件。