<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Michaelia_hu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Michaelia_hu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Michaelia_hu]]></copyright><item><title><![CDATA[小端机器上读取数值、字符串到寄存器的实现]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/131559634</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/131559634</guid><author>Michaelia_hu</author><pubDate>Wed, 05 Jul 2023 17:12:30 +0800</pubDate><description><![CDATA[所以与从内存中读取的区别是，寄存器直接读取数值型常量时，需要知道我这次不是从内存中读，对于常量数值，得手动逆序读取字节。对于字符串，为了让其能以原序存于内存中，需要以与内存相反的方向存于寄存器中，这样从内存读入寄存器后，才是正确的顺序。这里的字节读取顺序仅为易于理解，实际上寄存器的值是一次读取完的，不存在读取了一半的情况。即从reg的低位往高位处理：]]></description><category></category></item><item><title><![CDATA[为什么四舍五入是trunc(x±0.49999997)而不是trunc(x±0.5)？]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/131555263</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/131555263</guid><author>Michaelia_hu</author><pubDate>Wed, 05 Jul 2023 14:46:37 +0800</pubDate><description><![CDATA[此时，假设有float值x=2^22+1.0，对其进行四舍五入的舍入预期值为x本身，但实际舍入会执行floor(x+0.5)，但x+0.5这个值并不能用float精确表示，系统会对其进行舍入后再表示，此处的舍入是中值向偶数舍入的就近舍入，x+0.5正好是2^22+1.0与2^22+2.0的中值，向偶舍入则会舍入为2^22+2.0，对2^22+2.0执行floor依然是2^22+2.0，得到的结果与预期值不符。0.49999997会就近舍入到x，floor(x)=x，结果正确，不会有+0.5的漏洞。]]></description><category></category></item><item><title><![CDATA[2. 信息在计算机中存储的格式]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869711</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869711</guid><author>Michaelia_hu</author><pubDate>Tue, 15 Nov 2022 17:20:44 +0800</pubDate><description><![CDATA[8位，是最小的可寻址内存地址。每台计算机的字长，指明了指针数据的标称大小，也决定了虚拟地址空间的最大值。对于w位的机器而言，最多访问2^w个字节。如32位机器可访问2^32=4,294,967,296Byte≈4G字节，即4GB。64位可访问约16EB。（使用gcc编译时，带上参数-m32可使代码能同时在64位与32位机器上运行，而-m64的代码只能在64位机器上运行。）]]></description><category></category></item><item><title><![CDATA[1. 计算机系统概述]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869590</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869590</guid><author>Michaelia_hu</author><pubDate>Tue, 15 Nov 2022 17:12:38 +0800</pubDate><description><![CDATA[性能的提升为 Old time/New time。比如对整体的60%的组件进行耗时优化，优化到这些组件的耗时可以忽略不计，整体性能也就提升1/0.4=2.5X。：通过多个CPU核心或者超线程实现，超线程指一个CPU中有多个PC与寄存器文件，但是只有一个ALU；Amdahl定律表示 要提升系统整体的性能，就得对系统大部分部件的性能进行提升。：通过流水线的方式执行指令实现，可实现1~3个时钟周期完成一条指令操作；：即SIMD，单条指令可以执行多条数据，将单个指令并行执行。]]></description><category></category></item><item><title><![CDATA[不同字符编码对比]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869516</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869516</guid><author>Michaelia_hu</author><pubDate>Tue, 15 Nov 2022 17:08:04 +0800</pubDate><description><![CDATA[ASCII码使用一个字节编码，但只适用于英文；Unicode定义了字符集，有 17 个 code plane，总共规划了 1,114,112 个 code point。而这些字符可以使用UTF-8、UTF-16或者UTF-32等编码方式进行编码，不同的编码方式所占的字节数不一样。具体的表现形式为：0xxxxxxx：单字节编码形式，这和 ASCII 编码完全一样，因此 UTF-8 是兼容 ASCII 的；110xxxxx 10xxxxxx：双字节编码形式；]]></description><category></category></item><item><title><![CDATA[11.流复制]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869472</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869472</guid><author>Michaelia_hu</author><pubDate>Tue, 15 Nov 2022 17:05:45 +0800</pubDate><description><![CDATA[流复制将主库的数据备份到备库上，使用的一主多从的架构。（pg虽然提供了备份，但在故障时需要人工设置接管，而不能自动接管，除非使用插件）连接分为四种状态：启动、追赶、流复制、备份（第十章中backup_start与backup_stop之间的备份整个数据库集簇快照的过程）当备库停机后，pg通过复制槽来保留主库中未被流复制到备库的WAL文件，防止WAL段文件被回收（不能从归档日志中读取吗？）。在备库启动后，再继续之前的备份。]]></description><category></category></item><item><title><![CDATA[10.基础备份与时间点恢复]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869428</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869428</guid><author>Michaelia_hu</author><pubDate>Tue, 15 Nov 2022 17:03:34 +0800</pubDate><description><![CDATA[基础备份与时间线都是为了时间点恢复。]]></description><category></category></item><item><title><![CDATA[9.WAL]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869396</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127869396</guid><author>Michaelia_hu</author><pubDate>Tue, 15 Nov 2022 17:02:20 +0800</pubDate><description><![CDATA[WAL实现过程]]></description><category></category></item><item><title><![CDATA[8.缓冲区管理器]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804260</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804260</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 13:10:24 +0800</pubDate><description><![CDATA[缓冲区管理器]]></description><category></category></item><item><title><![CDATA[7.堆内元组（HOT）和仅索引扫描]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804250</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804250</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 13:05:14 +0800</pubDate><description><![CDATA[堆内元组与仅索引扫描]]></description><category></category></item><item><title><![CDATA[6. 清理过程]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804228</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804228</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 13:03:39 +0800</pubDate><description><![CDATA[清理过程]]></description><category></category></item><item><title><![CDATA[5.并发控制]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804185</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804185</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 12:59:20 +0800</pubDate><description><![CDATA[事务的并发控制]]></description><category></category></item><item><title><![CDATA[4.FDW]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804172</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804172</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 12:53:14 +0800</pubDate><description><![CDATA[外部数据包装器]]></description><category></category></item><item><title><![CDATA[3. 查询处理]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804087</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804087</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 12:51:33 +0800</pubDate><description><![CDATA[查询处理，说明计划器与执行器在单表查询与多表查询时的工作。]]></description><category></category></item><item><title><![CDATA[1/2.数据库集簇、元组，进程、内存架构]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804013</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127804013</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 12:39:52 +0800</pubDate><description><![CDATA[数据库集簇、元组，进程与内存架构]]></description><category></category></item><item><title><![CDATA[PostgreSQL中的索引—10（Bloom）]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127803888</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127803888</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 12:21:17 +0800</pubDate><description><![CDATA[本文的主题是PG数据库的bloom索引。]]></description><category></category></item><item><title><![CDATA[PostgreSQL中的索引—9（BRIN）]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127803756</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/127803756</guid><author>Michaelia_hu</author><pubDate>Fri, 11 Nov 2022 12:17:14 +0800</pubDate><description><![CDATA[本文的主题是PG数据库中的BRIN索引。]]></description><category></category></item><item><title><![CDATA[PostgreSQL中的索引—8（RUM）]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/123274002</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/123274002</guid><author>Michaelia_hu</author><pubDate>Fri, 04 Mar 2022 17:58:13 +0800</pubDate><description><![CDATA[​

目录

RUM

GIN的局限性

短语搜索

按相关性排序

附加信息

其他操作符类

索引和预写日志（WAL）的大小

属性

我们已经讨论了PostgreSQL索引引擎、访问方法的接口，以及主要的访问方法，例如：哈希索引、B树、GiST、SP GiST和GIN。在本文中，我们将观察杜松子酒如何变成朗姆酒（GIN如何变成RUM的）。

RUM

尽管作者声称GIN是一种强大的精灵，但酒类的主题最终赢得了胜利：下一代GIN被称为RUM（朗姆酒）。

这种访问方法扩展了GIN的基本概念，使我们能够更]]></description><category></category></item><item><title><![CDATA[PostgreSQL中的索引—7（GIN）]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/123256143</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/123256143</guid><author>Michaelia_hu</author><pubDate>Fri, 04 Mar 2022 12:10:27 +0800</pubDate><description><![CDATA[目录

GIN

一般概念

全文检索

查询示例

更新缓慢的问题

部分匹配的搜索

频繁词和不频繁词

限制查询结果

紧凑表示

GiST还是GIN？

数组

JSONB

内部构件

属性

其他数据类型

我们已经熟悉了PostgreSQL索引引擎和访问方法的接口，并讨论了哈希索引、B树以及GiST和SP GiST索引。本文将以GIN索引为特色。

GIN

“Gin?..Gin似乎是一种美国酒..”

“我不是酒鬼，哦，好奇的孩子！”老人又一次勃然大怒，他又一次意识到自己，又一次控制住自己。]]></description><category></category></item><item><title><![CDATA[PostgreSQL中的索引—6（SP-GiST）]]></title><link>https://blog.youkuaiyun.com/Michaelia_hu/article/details/123252398</link><guid>https://blog.youkuaiyun.com/Michaelia_hu/article/details/123252398</guid><author>Michaelia_hu</author><pubDate>Thu, 03 Mar 2022 15:40:22 +0800</pubDate><description><![CDATA[目录

SP-GiST

架构

示例：四叉树

内部构件

示例：k维树

内部构件

示例：基数树

内部构件

属性

NULL

其他数据类型

我们已经介绍了Postgresql索引引擎、访问方法接口和三种方法：哈希索引、B树索引和GiST。在这边文章中，我们将描述SP-GiST。

SP-GiST

（通常用于多维空间）首先，对这个名字说几句话。“GiST”部分暗示了与同名访问方法的一些相似之处。这种相似性确实存在：两者都是通用的搜索树，为构建各种访问方法提供了框架。

“SP”代表空间分区。这]]></description><category></category></item></channel></rss>