<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sunpanowj的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sunpanowj</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sunpanowj]]></copyright><item><title><![CDATA[SQL优化]]></title><link>https://blog.youkuaiyun.com/sunpanowj/article/details/145794037</link><guid>https://blog.youkuaiyun.com/sunpanowj/article/details/145794037</guid><author>sunpanowj</author><pubDate>Sat, 22 Feb 2025 13:49:25 +0800</pubDate><description><![CDATA[B+树采用的页分类和页合并机制，可能有一部分索引空间是空的。不过现在业务上大部分使用的是伪删除，这部分可优化空间不大。使用Not null,当null占比较高时is not null查询会导致索引失效。列短则索引空间的利用率更高，索引树层级更低，查询更快。在业务允许的情况下使用数字替代字符串，字符串是按字符比较，数字是整体比对。参数化SQL，既能利于优化器提高性能，又能防止SQL注入。注意隐式类型转化，它本质也是使用表达式的一种。适当冗余，以空间换时间，减少连表查询。减少查询的列，可以充分利用覆盖索引。]]></description><category></category></item><item><title><![CDATA[Explain]]></title><link>https://blog.youkuaiyun.com/sunpanowj/article/details/145789918</link><guid>https://blog.youkuaiyun.com/sunpanowj/article/details/145789918</guid><author>sunpanowj</author><pubDate>Sat, 22 Feb 2025 08:53:21 +0800</pubDate><description><![CDATA[All：全表扫描包含查询全部+无索引+索引失效。system：myisam存储引擎，且行数为1。null：一般遇不到，不访问任何表。const：唯一索引（包括主键）range：范围查询，模糊查询。eq_ref：连表查询。index：覆盖索引。]]></description><category></category></item><item><title><![CDATA[介绍B+树]]></title><link>https://blog.youkuaiyun.com/sunpanowj/article/details/145689238</link><guid>https://blog.youkuaiyun.com/sunpanowj/article/details/145689238</guid><author>sunpanowj</author><pubDate>Mon, 17 Feb 2025 18:33:51 +0800</pubDate><description><![CDATA[借着介绍B+树让我们来了解下数据结构的魅力。B树（B-Tree） 是一种自平衡的树形数据结构，主要用于数据库和文件系统中存储大量数据。与二叉树不同，B树允许每个节点有多个子节点，并且每个节点可以存储多个键值。不理解标红的两个多有什么意义没关系，这段最后看。B+树就是在B树的基础上为相邻的叶子结点新增了双向链表。注意：没有B-树，网上一切关于B-树的言论纯属瞎扯，相当于抄同学作业。不理解为什么加链表没关系，这段最后看。在此之前先科普下：在内存中查询和在磁盘查询性能不是一个数量级每次查询都是一次磁盘IO，树的层]]></description><category></category></item><item><title><![CDATA[产品角度分析摇一摇广告]]></title><link>https://blog.youkuaiyun.com/sunpanowj/article/details/145685381</link><guid>https://blog.youkuaiyun.com/sunpanowj/article/details/145685381</guid><author>sunpanowj</author><pubDate>Mon, 17 Feb 2025 16:07:55 +0800</pubDate><description><![CDATA[摇一摇广告是一种通过手机的陀螺仪和加速度传感器触发页面跳转的广告形式。用户在打开某些App时，只要手机发生轻微移动，就会自动跳转到广告页面。但因过于敏感、容易误触而受到广泛批评。虽然广受差评却依旧毅力不到，它究竟有什么价值，广告主难道不知道这些是无效/逆效流量吗。下面从产品设计的角度分析给出几个看似还合理的推测。]]></description><category></category></item><item><title><![CDATA[Avalonia模版选择]]></title><link>https://blog.youkuaiyun.com/sunpanowj/article/details/145679616</link><guid>https://blog.youkuaiyun.com/sunpanowj/article/details/145679616</guid><author>sunpanowj</author><pubDate>Mon, 17 Feb 2025 11:56:13 +0800</pubDate><description><![CDATA[之类的额外代码，要知道在WPF使用TemplateSelector是需要手动选择的。Avalonia中会自动为任意对象寻找合适的模板，找不到默认展示其。注意：这里是任意Model，不仅仅是ViewModel。是一个扩展的对象，有些时候能够简化一部分代码。Avalonia中的模板体现为一个。就将非ViewModel全部过滤了。首先会按照资源作用域进行查找，按。有点类似WPF的静态模板选择器。中植入逻辑来决定返回什么样的。方法还能为我们做一个初筛。，只需要定义一个接口就能。并没有设置key所以可以。]]></description><category></category></item><item><title><![CDATA[Kubernetes]]></title><link>https://blog.youkuaiyun.com/sunpanowj/article/details/145664894</link><guid>https://blog.youkuaiyun.com/sunpanowj/article/details/145664894</guid><author>sunpanowj</author><pubDate>Sun, 16 Feb 2025 14:21:14 +0800</pubDate><description><![CDATA[每个应用都是一个Container，很多时候我们还会为每个应用配置一个日志收集器Container，或监控采集器Container，这些Container共同组成一个Pod，它运行在Node上，K8s可以将Pod从某个Node调度到另一个Node，还能一Pod为单位去做重启和动态扩缩容的操作。Node是实际的工作节点，它既可以是裸机服务器也可以是虚拟机，负责实际运行各个应用服务，多个应用服务共享一台Node的内存和CPU等计算机资源。以上这些功能都会产生一些数据，这些数据需要保持到存储层，所以还需要一个。]]></description><category></category></item><item><title><![CDATA[Docker]]></title><link>https://blog.youkuaiyun.com/sunpanowj/article/details/145657820</link><guid>https://blog.youkuaiyun.com/sunpanowj/article/details/145657820</guid><author>sunpanowj</author><pubDate>Sat, 15 Feb 2025 22:11:45 +0800</pubDate><description><![CDATA[我们可以将要做的事情用命令行的方式一行一行的列出来，这样就列了一份从操作系统到应用服务启用需要做哪些事情的清单文件，就是所谓的dockerfile。我们可以通过一个yaml文件，写清楚要部署的容器有哪些部署顺序是什么样的，以及这些容器占用的CPU和内存等资源，然后通过一行。的能力限制它能使用的计算机资源。部署到不同操作系统的服务器上，依赖的软件和配置就更多了，就需要根据环境写一套单独的配置脚本，太难受了……将这个类似压缩包的容器镜像给解压缩，获得一个独立的环境和应用程序，这样的一个我们称为。]]></description><category></category></item></channel></rss>