IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    admin
    发表于
    2024-11-03 07:06:45

    神龙漏洞库的十月更新:Link解读集成千问大模型,一些其他优化

    大模型如果你现在访问神龙漏洞库,不出意外的话已经有大模型为您解读Link里的内容啦!(底层是基于千问做的),访问https://cve.imfht.com/detail/CVE-2024-10699试试吧!如果你关注一下同类的产品,会发现我们做的东西还挺不错的,例如阿里云漏洞库和微步在线漏洞库。断断续续更新一年了,没有哪个大厂会有这样的耐心,也没有哪个小公司能一直投入做这种没有盈利的事情,祝我们一切都好啊~ ;-D神龙漏洞库的十月更新:Link解读集成千问大模型,一些其他优化最先出现在帅核桃说。 ...继续阅读 (120)


    love 0
    伍华聪
    发表于
    2024-11-03 05:06:00

    使用wxpython开发跨平台桌面应用,常用窗体布局BoxSizer,FlexGridSizer,GridBagSizer的介绍处理 - 伍华聪

    【摘要】我们在开发桌面应用的时候,不管是之前C#开发Winform的时候,还是现在使用wxpython来开发跨平台应用的时候,都需要了解布局的处理,wxpython的常用布局Sizer类,包括BoxSizer,FlexGridSizer,GridBagSizer都是我们需要经常打交道的,因此有必要对它们进行一些了解,这样开发界面起来才能得心应手。本篇随笔介绍一下这几种布局Sizer的不同以及对它们进行测试和封装使用。阅读全文 ...继续阅读 (103)


    love 0
    MaskRay
    发表于
    2024-11-03 04:56:32

    Tinkering with Neovim

    Aftermigrating fromVim to Emacsas my primary C++ editor in 2015, I switched from Vimto Neovim for miscellaneous non-C++ tasks as it is more convenient in aterminal. Customizing the editor with a language you are comfortablewith is important. I found myself increasingly drawn to Neovim'sterminal-based simplicity for various non-C++ tasks. Recently, I'verefined my Neovim setup to the point where I can confidently migrate myentire C++ workflow away from Emacs. This post explores the keyimprovements I've made to achieve this seamless transition.Key mappingI've implemented custom functions that sim ...继续阅读 (85)


    love 0
    Deddy White
    发表于
    2024-11-03 04:23:18

    Express.js Middleware: Fungsi, Manfaat, dan Cara Implementasi

    Middleware adalah konsep penting dalam pengembangan aplikasi web menggunakanExpress.js, yang bertindak sebagai lapisan antara permintaan pengguna dan respons dari server. Dengan menggunakan middleware, Anda dapat memanipulasi, memproses, dan mengelola data permintaan sebelum mencapai endpoint atau setelah respons dikirim. Bagi pengembang yang ingin memahami arsitektur backend lebih dalam, memahami fungsi dan manfaat middleware adalah langkah penting.Artikel ini akan menjelaskan apa itu middleware dalam konteks Express.js, berbagai jenis middleware yang tersedia, manfaat yang mereka tawarkan, d ...继续阅读 (78)


    love 0
    张善友
    发表于
    2024-11-03 01:39:00

    .NET 9 中没有 wasi 实验性支持 - 张善友

    【摘要】2023年10月份写过一篇《本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9 》[1],根据此问题[2],在 .NET 9 RTM 中似乎不会有wasi-experimental,仅使用 componentize-dotnet [3]的项目才能工作/将被更新,WASI 实验正在 NE阅读全文 ...继续阅读 (106)


    love 0
    androidyue
    发表于
    2024-11-03 00:49:00

    Could not create task \':generateDebugRFile\' 问题小记

    前段时间,处理一个比较旧的 flutter plugin,涉及到 Android 的部分,一顿修改后,发现无法 gradle sync 成功。 报错如下,12345678910Couldnotcreatetask':generateDebugRFile'.Cannotuse@TaskActionannotationonmethodIncrementalTask.taskAction$gradle_core()becauseinterfaceorg.gradle.api.tasks.incremental.IncrementalTaskInputsisnotavalidparametertoanactionmethod.*Try:>Runwith--debugoptiontogetmorelogoutput.>Runwith--scantogetfullinsights.*Exceptionis:com.intellij.openapi.externalSystem.model.ExternalSystemException:Couldnotcreatetask':generateDebugRFile'.Cannotuse@TaskActionannotationonmethodIncrementalTask.taskAction$gradle_core()becauseinterf ...继续阅读 (110)


    love 0
    caimouse
    发表于
    2024-11-03 00:07:20

    .Net Framework里演示怎么样使用StringBuilder、Math.Min和String.Format

    StringBuilder、Math.Min和String.Format,他们在写.Net Framework的源码时,就会大量使用。因此,我们可以多看看这分代码,就可以理解他们怎么样使用的。他们的使用方式,一定是比较好的,因为他们是写了多年的代码。但是怎么样正确地使用,还是得向微软的开发人员学习。这段代码把这几个功能使用得非常标准。这几个功能都是我们经常使用的功能, ...继续阅读 (117)


    love 0
    Yiran\'s Blog
    发表于
    2024-11-03 00:00:00

    Weekly Issue-《外面是夏天》

    文章链接到标题技术链接到标题Using less memory to look up IP addresses in Mess With DNS一个 [[Golang]] 程序的内存使用优化过程记录,先是尝试了一些其他的方案,比如 SQLite,trie,都放弃了。最后一点点通过 runtime 来分析内存使用,通过修改部分数据结构来优化内存,在优化的过程中,搜索到了 Tailscale 发表的关于net.IP问题的博客,最终节省了 70MB 的内存。Omnivore is joining ElevenLabs - Omnivore Blog[[omnivore]] 被 [[ElevenLabs]] 收购了,[[ElevenLabs]] 是一个 AI 音频平台。[[omnivore]] 所谓的 self-hosted 之前是一句笑话,之后应该也是。An update from Drew | Dropbox Blog[[Dropbox]] 决定裁员约 20%(528 人)。Dropbox 本身是盈利的,4.5 亿美元利润/2.5B 美元收入的净利润。想到之前在 Twitter 上看到的 Dropbox 办公室政治已经非常严重,裁员也不意外。c++ - Cycles in family tree software - Stack Overflow问题作者在开发家族图谱软件,收到了一个用 ...继续阅读 (136)


    love 0
    血衫非弧の一存
    发表于
    2024-11-03 00:00:00

    macOS 定时自动亮屏

    通过 macOS 自带的 caffeinate 工具和定时任务 crontab,可以轻松实现定时自动亮屏的功能。以下是模拟用户活动并保持屏幕唤醒 10 分钟的具体实现。wake_screen.sh#!/bin/bash# 获取当前时间(小时和分钟)和日志时间(带日期)current_time=$(date+'%H:%M')log_time=$(date+'%Y%m%d_%H%M')sleep_time=1# 设置每次睡眠时间# 计算循环次数,使得总执行时间接近 60 秒loop_count=$((60/sleep_time))# 检查是否为每天 8 点,并清空日志if[["$current_time"=="08:00"]];thenecho"[$log_time] 日志已清空">"$log_file"fi# 判断是否在 13:00 到 13:02 之间if([["$current_time">"18:20"&&"$current_time"<"18:40"]]||[["$current_time">"13:00"&&"$current_time"<"13:02"]]);thenecho"[$log_time] 执行 caffeinate 命令">>~/Workspace/log/cron/caffeinate.log# 使用 for 循环动态执行 caffeinate 命令fori ...继续阅读 (127)


    love 0
    诺多
    发表于
    2024-11-02 23:31:15

    笔者这几天趁着双11的风,更新了自己的NAS设备,由原来的TS-673A换为TS-466C,为什么呢?一是因为前者没有核显,日常看视频(囿于那可怜的上行带宽,外网需转码观影)有些吃力,另一方面就是有赖@天地极限大佬帮助,以一个比较划算的价格从某东买到了后者。当然TS-673A也很快就在海鲜市场出手了。乾坤大挪移新机器到手,本来想把TS-673A上两条16G的ECC内存条直接换到TS-466C上的,结果却不支持,索性直接连夜秒了两条普通的32G内存条插上,一步到位,毕竟原装的8G实在捉襟见肘。接下来就是重头戏了,QNAP的迁移还是比较简单的,只需要把原机器上的硬盘拆下来,直接插到新机器上就行了,系统本身和存储设置等都会自动无感恢复,对于笔者这种硬件小白来说,不能说不友好,而是实在太友好了!本以为万无一失,实际上墨菲定律永远教你做人。上图其实本身并没有问题,将6盘位的盘转移到4盘位上,必然有2块盘移不过来,所以最后那个卷状态报错误是理所当然的,都怪我在转移之前没有在673A上先把这个卷删掉,但是我又不想在拆机折腾一遍。所以,实际的问题是,当我想点进这个卷手工删除时,进不去了~进不去了~进不去了~一直卡在的Loading洁面,有时10+%,有时90+%,但就是进不去!这就尴尬了,虽然不影响NAS政策使用,但是它影响心情啊,强迫症怎么能忍!呼叫远程火力还能怎么办,呼叫官方技术支持呗。首先是 ...继续阅读 (122)


    love 0
    二丫讲梵
    发表于
    2024-11-02 23:19:37

    单恋XQ-感言,中英对照诗

    如要阅读全文,点击标题跳转。你是幸福的。在我眼中,你是阴丽华(娶妻当得阴丽华),在老师眼中,你是可爱型的冯小青(明朝著名女诗人,秀丽端雅,聪明伶俐),在父母眼中,你是淳于缇萦(缇萦救父,至孝之举),在朋友眼中,你是颇怀男儿豪情的花木兰。你确实是幸福的。 ...继续阅读 (125)


    love 0
    诺多
    发表于
    2024-11-02 23:00:12

    嘿,各位美食爱好者!今天我要和大家分享一个超级棒的小工具——Tamari食谱管理程序。作为一个经常在厨房手忙脚乱的菜鸟,我一直在寻找能帮我管理食谱、规划菜单的好帮手。试过各种app后,终于让我找到了Tamari这个宝藏!Tamari是什么?简单来说,Tamari是一个基于网络的食谱管理工具。它不仅能存储你的私房菜谱,还能帮你发现新食谱、规划餐饮、生成购物清单。无论你是刚入门的厨房新手,还是经验丰富的大厨,Tamari都能成为你的得力助手。最棒的是,它是一个网页程序,意味着你可以在任何有浏览器的设备上使用它,不需要下载安装任何app!Tamari:我的厨房新欢说起Tamari的功能,那可真是让人爱不释手!来看看它为什么成为我的厨房新欢:私房食谱管理Tamari让我轻松存储自己的拿手菜。每个食谱都可以添加标题、类别、烹饪时间、份量、原料、步骤,甚至可以上传照片。界面简洁易用,就算是我这个科技小白也能轻松上手。再也不用担心忘记某道菜的做法啦!海量新食谱发现Tamari收录了超过10万个来自50个分享网站的食谱,简直是美食探索者的天堂!最棒的是,Tamari会自动提取网页上的食谱信息,省去手动输入的麻烦。这个功能真的太赞了,让我每天都能尝试新花样。智能餐饮规划有了Tamari,再也不用为"今天吃什么"发愁了。我可以提前30天在网页上安排好每天的菜单,让饮食更有规划。这个功能真的解决了我的大 ...继续阅读 (124)


    love 0
    二丫讲梵
    发表于
    2024-11-02 22:59:41

    单恋XQ-金牛座,弗恋,寂寞

    如要阅读全文,点击标题跳转。我生卿亦生,相生一周错。四尾五头论,均是金牛座。十七年后遇,两人心辽阔。我意结连理,卿却总闪躲。情义不受,红叶不接,就地难坐卧。奔赴卿身旁,索问是为何?仍然老回答,我心凉萧索。青春不赶趟,现实没逼迫。致我今身心,犹且是单个。商出结果,痛心更多,皆为我作恶。别人青春比翼飞,我之青春寂寞陪。古来皆有寂寞期,百年之后才上位。而我青春寂寞,岂非急杀人也!难捱!难捱! ...继续阅读 (122)


    love 0
    caimouse
    发表于
    2024-11-02 18:07:15

    雪花算法(Snowflake Algorithm)C# 实现版本

    时间戳是雪花算法的核心部分,用于记录生成ID的时间。时间戳是一个41位的数字,精度为毫秒级别。这里采用10位的工作ID,当时间回拔时,采用工作ID增加1来避免生成与旧的ID重复。timestamp = (当前时间 - 起始时间) ...继续阅读 (108)


    love 0
    Rizhu Botania
    发表于
    2024-11-02 14:21:36

    GeForce RTX 4090: Performa, Fitur, dan Spesifikasi Unggulan untuk Gamer dan Kreator Konten

    PendahuluanGeForce RTX 4090adalah kartu grafis terbaru dari NVIDIA yang dirilis sebagai bagian dari lini produk GeForce RTX 40 Series. Dikenal sebagai kartu grafis flagship untuk pasar gaming dan profesional, GeForce RTX 4090 menawarkan performa luar biasa yang dirancang untuk menangani berbagai tugas berat, mulai dari gaming dalam resolusi 4K hingga pembuatan konten seperti rendering 3D dan video editing.Dibekali dengan teknologi terbaru seperti arsitektur Ada Lovelace, fitur DLSS 3, dan dukungan ray tracing yang semakin ditingkatkan, GeForce RTX 4090 menjadi pilihan ideal bagi mereka yang me ...继续阅读 (72)


    love 0
    nokiaguy
    发表于
    2024-11-02 12:48:07

    【Python】解密Python中的魔法方法:使用 __str__、__repr__、__call__等方法提升类的功能与灵活性

    Python 中的魔法方法是一种强大的特性,它们允许开发者为类添加特殊行为,从而使类能够模拟内置对象或实现自定义行为。本文将深入探讨Python中常用的魔法方法,如 `__str__`、`__repr__`、`__call__` 等,通过丰富的代码示例详细解析这些方法的实现方式和应用场景。文章中会展示如何运用魔法方法使类支持多种表现形式、自定义输出、作为函数调用等功能。通过对这些方法的掌握,开发者可以提升代码的可读性、灵活性和可扩展性,深入理解Python的面向对象编程特性。 ...继续阅读 (119)


    love 0
    nokiaguy
    发表于
    2024-11-02 12:45:07

    【Python】深度剖析Python中的可迭代对象与迭代器——掌握高级迭代器实现与应用

    在Python编程中,可迭代对象与迭代器是核心概念,广泛应用于数据处理、流式数据传输和惰性求值等场景。理解它们的定义、特性以及如何自定义实现,能帮助开发者更好地编写高效代码。本文将系统性地介绍Python中迭代器与可迭代对象的工作原理,深入探讨 `__iter__()` 和 `__next__()` 方法的实现方式,并通过大量代码示例展示如何创建自定义的可迭代类,应用于惰性生成数据流、支持双向迭代和自定义迭代行为等高级应用。本文的每个示例代码都附有详细中文注释,帮助读者深刻理解这一特性在Python编程中的 ...继续阅读 (141)


    love 0
    诺多
    发表于
    2024-11-02 11:29:53

    今天Follow客户端突然弹出消息,提醒可以领取$POWER空投,点开一看不得了,根据我的账号贡献,可以领取1797个$POWER,爽歪歪,赶紧发文自嗨一下!如何领取把上面的成就图片下载下来,发到社交媒体或个人博客上,然后把链接提交到Follow即可。传送门:https://follow.is/airdrop比如,我把这个成就图放在这篇文章中,然后发到我的博客里面,再把这篇文章的链接提交即可,等到下周即可领取空投。接下来,就是坐等天上掉$POWER啦!原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力! ...继续阅读 (117)


    love 0
    Phodal Huang
    发表于
    2024-11-02 09:04:53

    架构赋能 AI:知识工程推动下的架构数智化

    TL;DR:我们试验了将 AI 应用到基于 Protobuf 的微服务架构中,基于 ArchGuard 治理平台、Shire AI 助手、Team AI 三个工具中,构建了一套完整的 ...继续阅读 (153)


    love 0
    Deddy White
    发表于
    2024-11-02 08:25:04

    Handheld Gaming PC Terbaik 2024: Gaming Portabel Berkualitas

    Jika Anda seorang gamer yang sering bepergian dan ingin pengalaman gaming berkualitas tanpa harus membawa perangkat besar,handheld gaming PCadalah pilihan yang sempurna. Pada artikel ini, kami akan membahas berbagai aspek tentang perangkat gaming portabel ini, mulai dari manfaat, cara memilih, hingga perbandingan dengan gaming laptop. Dengan mengetahui informasi ini, Anda dapat menemukan portable gaming PC yang sesuai dengan kebutuhan dan anggaran Anda, serta tetap menikmati performa gaming terbaik, baik untuk game AAA maupun game indie.Mengapa Memilih Handheld Gaming PC?Seiring perkembangan t ...继续阅读 (78)


    love 0
    Dela Cook
    发表于
    2024-11-02 07:58:12

    Mengenal Selenium Package: Fungsi, Kelebihan, dan Keterbatasannya dalam Pengembangan Otomasi Web

    Selenium Package,Dalam pengembangan perangkat lunak, otomatisasi menjadi kebutuhan penting untuk meningkatkan efisiensi dan mengurangi potensi kesalahan manusia. Salah satu tools yang populer untuk otomatisasi web adalahSelenium, sebuah framework open-source yang membantu developer dan QA (Quality Assurance) engineer melakukan pengujian otomatis terhadap aplikasi berbasis web. Artikel ini akan membahas apa itu Selenium Package, fungsi utamanya, kelebihan, serta keterbatasan yang perlu diperhatikan.Apa Itu Selenium Package?Selenium adalah library yang berfungsi untuk mengotomatisasi interaksi d ...继续阅读 (73)


    love 0
    R0uter
    发表于
    2024-11-02 06:54:08

    Kotlin/Android 检测文本编码

    去落格博客阅读完整排版的Kotlin/Android 检测文本编码最近更新:2nd 11 月, 2024最近在做Android版本的落格输入法,在导入码表的时候我犯了难。因为落格输入法的码表是支持 utf8 和 gb18030 两种编码格式的,甚至我自己内置的码表也是混用这两种格式的。在 Swift 或者 Python 中,如果你使用错误的编码去解码文本,就会收到报错。利用这个办法,我可以轻松实现两种编码的检测——先用 utf8 解码,报错了就再试试 gb18030. 简单方便,足够我用。可是这个情况在Kotlin中不灵了!在 Java 中,如果你使用错误编码解码文本,它只会给你一坨乱码!这在其他语言中通常都需要明确强制解码才能实现……但在 Java 中是默认的,而且没有办法让它报错。try { val assetName = "" val inputStream = context.assets.open(assetName) reader = InputStreamReader(inputStream, Charsets.UTF_8) // 任何编码的文本都不会触发报错 } catch (e: IOException) { // means file not in t ...继续阅读 (111)


    love 0
    Insus.NET
    发表于
    2024-11-02 05:05:00

    Visual Studio 2022安装水晶报表(Crystal Reports) - Insus.NET

    【摘要】这些天,为程序呈现报表。当想添加Crystal Report时,发现Visual Studio 2022无法添加报表。只有重新下载啦。去这里https://www.tektutorialshub.com/crystal-reports/download-crystal-reports-for-vis阅读全文 ...继续阅读 (75)


    love 0
    Insus.NET
    发表于
    2024-11-02 04:24:00

    在箭头函数内,想执行2个行为,但第2个行为却略过 - Insus.NET

    【摘要】如下示例代码(Javascript): 第1个行为提示给用户,当用户点击提示之后,页面重新定向当前页面了,那自然的,第2个行为自然略过了。解决办法,就是使用setTimeout写个超时器,过多少秒之后,自动 执行第2个行为。 .then(response => { if (response.data阅读全文 ...继续阅读 (107)


    love 0
    Andre Lewis
    发表于
    2024-11-02 03:00:50

    Teknologi AMP: Solusi Cepat Pengalaman Mobile Lebih Baik

    Accelerated Mobile Pages (AMP)adalah teknologi yang terus berkembang untuk mempercepat akses situs web, khususnya di perangkat mobile. AMP menjadi solusi yang diminati oleh banyak situs berita, e-commerce, dan platform lain untuk meningkatkan pengalaman pengguna. Teknologi ini memungkinkan halaman web untuk dimuat lebih cepat, mengurangi bounce rate, dan meningkatkan interaksi pengguna. Mari kita bahas lebih dalam tentang perkembangan teknologi AMP dan bagaimana teknologi ini dapat membantu bisnis online.Apa Itu Teknologi AMP?Accelerated Mobile Pages, atau AMP, adalah framework sumber terbuka ...继续阅读 (73)


    love 0
    伍华聪
    发表于
    2024-11-02 02:11:00

    使用wxpython开发跨平台桌面应用,对常用消息对话框的封装处理 - 伍华聪

    【摘要】在很多程序中,封装常用消息对话框有很多好处,尤其是在 GUI 应用程序中,本篇随笔结合.net 开发Winform界面的经验,对 wx.MessageDialog 和 wx.lib.agw.genericmessagedialog.GenericMessageDialog 两种不同消息对话框的处理,对其进行简单封装,以适应程序开发的需要。阅读全文 ...继续阅读 (103)


    love 0
    admin
    发表于
    2024-11-02 01:26:16

    5 块钱,就可以给娃训练一个专属的 AI 模型

    上周末花了 5 个小时,从零开始给娃训练了一个基于 flux1_dev 的 lora,用于生成娃的照片。以下为详细(保姆级)的过程记录,有想法又没有自己训练过 lora 的程序员爸爸或妈妈们可以尝试一下。可能的时间成本:2 ~ 5 小时,资金成本:5 ~ 10 块。环境准备因为我们会用到 GPU 机器,去类似于阿里云这种云平台租,太贵。这里我们选择的是 audodl ,一个比阿里云便宜 60% 的可按小时租 GPU 服务器的算力平台。autodl 基于容器实现,在使用上有一些局限性,但是对于我们当下的需求来说,还是非常匹配的。我们选择如图 1 所示的配置:图14090D + 50 G 额外的空间尽量选择空闲 GPU 多的主机或所在区,因为可能会存在主机 GPU 不够的情况。下单付款,等待容器启动。容器启动后,直接使用官方提供的 web 的终端,这个终端有一个好处是当你关掉浏览器以后,终端还在,有点类似于 nohup 的执行状态。需要说明一下,autodl 的存储分为系统盘和数据盘,在 /root/autodl-tmp 下为数据盘空间。我们要下载的模型、项目等都放到数据盘下。把 commfy UI flux 跑起来1. 创建 comfyUI 的环境并跑起来cd~/autodl-tmp gitclonehttps://github.com/comfyanonymous/ComfyUI ...继续阅读 (146)


    love 0
    admin
    发表于
    2024-11-02 01:26:16

    5 块钱,就可以给娃训练一个专属的 AI 模型

    上周末花了 5 个小时,从零开始给娃训练了一个基于 flux1_dev 的 lora,用于生成娃的照片。以下为详细(保姆级)的过程记录,有想法又没有自己训练过 lora 的程序员爸爸或妈妈们可以尝试一下。可能的时间成本:2 ~ 5 小时,资金成本:5 ~ 10 块。环境准备因为我们会用到 GPU 机器,去类似于阿里云这种云平台租,太贵。这里我们选择的是 audodl ,一个比阿里云便宜 60% 的可按小时租 GPU 服务器的算力平台。autodl 基于容器实现,在使用上有一些局限性,但是对于我们当下的需求来说,还是非常匹配的。我们选择如图 1 所示的配置:图14090D + 50 G 额外的空间尽量选择空闲 GPU 多的主机或所在区,因为可能会存在主机 GPU 不够的情况。下单付款,等待容器启动。容器启动后,直接使用官方提供的 web 的终端,这个终端有一个好处是当你关掉浏览器以后,终端还在,有点类似于 nohup 的执行状态。需要说明一下,autodl 的存储分为系统盘和数据盘,在 /root/autodl-tmp 下为数据盘空间。我们要下载的模型、项目等都放到数据盘下。把 commfy UI flux 跑起来1. 创建 comfyUI 的环境并跑起来cd~/autodl-tmp gitclonehttps://github.com/comfyanonymous/ComfyUI ...继续阅读 (117)


    love 0
    任卓
    发表于
    2024-11-02 00:00:00

    MySQL · 功能特性 · 谓词下推增强

    本文主要探讨我们在PolarDB MySQL产品中针对谓词下推这一优化器SQL重写规则所做的增强。在社区版本的基础上,我们进一步强化了下推逻辑对于等值关系的利用,通过等值语义的传递,增加了符合下推派生表规则的查询场景。此外,我们还扩展了谓词下推的范围,包括将HAVING子句中的谓词下推至WHERE子句、将WHERE子句中的谓词下推至子查询,以及将JOIN谓词下推至派生表。此系列优化旨在提升查询性能,显著改善用户的使用体验。什么是谓词下推在现代数据库系统中,用户场景的SQL查询往往复杂多样,涉及多个表的连接、子查询以及各种聚合操作。这种复杂性使得查询性能优化变得尤为重要。在这一背景下,谓词下推(Predicate Pushdown)作为一种重要的启发式优化规则,被广泛应用于优化器的查询模块中。它的核心思想是将查询条件(即谓词)尽可能早地应用于数据源,以减少后续操作的数据量。简而言之,就是在尽早的阶段对数据进行筛选,以避免不必要的数据处理,从而提高查询性能。社区版本的谓词下推Mysql社区优化器阶段的谓词下推指的是子查询派生条件下推,即在prepare阶段,Mysql会自顶向下,逐层处理每层查询的WHERE条件,将符合条件的谓词下推到子查询派生表中,比如下面的sql语句SELECT * FROM (SELECT i, j FROM t1) AS dt WHERE i > constan ...继续阅读 (69)


    love 0
    任卓
    发表于
    2024-11-02 00:00:00

    MySQL · 功能特性 · 谓词下推增强

    本文主要探讨我们在PolarDB MySQL产品中针对谓词下推这一优化器SQL重写规则所做的增强。在社区版本的基础上,我们进一步强化了下推逻辑对于等值关系的利用,通过等值语义的传递,增加了符合下推派生表规则的查询场景。此外,我们还扩展了谓词下推的范围,包括将HAVING子句中的谓词下推至WHERE子句、将WHERE子句中的谓词下推至子查询,以及将JOIN谓词下推至派生表。此系列优化旨在提升查询性能,显著改善用户的使用体验。什么是谓词下推在现代数据库系统中,用户场景的SQL查询往往复杂多样,涉及多个表的连接、子查询以及各种聚合操作。这种复杂性使得查询性能优化变得尤为重要。在这一背景下,谓词下推(Predicate Pushdown)作为一种重要的启发式优化规则,被广泛应用于优化器的查询模块中。它的核心思想是将查询条件(即谓词)尽可能早地应用于数据源,以减少后续操作的数据量。简而言之,就是在尽早的阶段对数据进行筛选,以避免不必要的数据处理,从而提高查询性能。社区版本的谓词下推Mysql社区优化器阶段的谓词下推指的是子查询派生条件下推,即在prepare阶段,Mysql会自顶向下,逐层处理每层查询的WHERE条件,将符合条件的谓词下推到子查询派生表中,比如下面的sql语句SELECT * FROM (SELECT i, j FROM t1) AS dt WHERE i > constan ...继续阅读 (48)

上一页 213/4404 下一页
沪ICP备19023445号-2号
友情链接