SQL慢查询怎么办,DBA老手教你5步快速定位与优化

第一章:SQL慢查询怎么办,DBA老手教你5步快速定位与优化

开启慢查询日志监控

定位慢查询的第一步是确保数据库已启用慢查询日志。在 MySQL 中,可通过以下配置开启:

-- 查看当前慢查询状态
SHOW VARIABLES LIKE 'slow_query_log';

-- 开启慢查询日志
SET GLOBAL slow_query_log = 'ON';

-- 设置慢查询阈值(单位:秒)
SET GLOBAL long_query_time = 1;

上述操作将记录执行时间超过1秒的SQL语句,便于后续分析。

使用EXPLAIN分析执行计划

对可疑SQL使用 EXPLAIN 命令查看其执行路径:

EXPLAIN SELECT * FROM orders WHERE user_id = 123 AND status = 'paid';

重点关注 type(访问类型)、key(使用的索引)和 rows(扫描行数)。若出现 ALL 或 index 类型且扫描行数巨大,说明缺少有效索引。

建立合适的索引策略

  • 为高频查询条件字段创建单列或复合索引
  • 避免过度索引,影响写入性能
  • 定期审查冗余或未被使用的索引

优化SQL书写方式

避免全表扫描和临时表生成。例如,改用覆盖索引减少回表:

-- 原始低效查询
SELECT * FROM users WHERE age > 25;

-- 优化后使用覆盖索引
SELECT id, name FROM users WHERE age > 25;

监控与持续调优

通过性能模式(Performance Schema)长期跟踪SQL执行情况。可定期运行如下查询识别最耗时语句:

指标说明
Query_time查询总耗时
Lock_time锁等待时间
Rows_sent返回行数
Rows_examined扫描行数

第二章:精准定位慢查询根源

2.1 启用慢查询日志并合理设置阈值

启用慢查询日志是定位性能瓶颈的关键步骤。MySQL通过记录执行时间超过指定阈值的SQL语句,帮助开发者识别低效查询。
配置慢查询日志参数
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1.0;
SET GLOBAL log_output = 'TABLE';
上述命令开启慢查询日志,将阈值设为1秒,并输出到mysql.slow_log表中。long_query_time可根据业务响应需求调整,例如高并发场景可设为0.5秒以更严格监控。
阈值设定建议
  • OLTP系统建议设置在0.5~2秒之间,避免遗漏潜在问题SQL
  • 报表类应用可适当放宽至5秒以上
  • 结合监控平台动态调整,定期分析日志趋势
合理配置后,系统将持续捕获慢查询,为后续优化提供数据支撑。

2.2 使用EXPLAIN分析执行计划关键指标

在优化SQL查询性能时,`EXPLAIN` 是分析执行计划的核心工具。它揭示了MySQL如何执行查询,帮助识别潜在的性能瓶颈。
执行计划输出字段解析
使用 `EXPLAIN` 后,返回的关键字段包括:
  • id:查询中每个SELECT的序号,表示执行顺序;
  • type:连接类型,从system到ALL,性能由高到低;
  • key:实际使用的索引;
  • rows:扫描行数预估值,越小性能越好;
  • Extra:附加信息,如“Using filesort”需警惕。
示例分析
EXPLAIN SELECT * FROM users WHERE age > 30 AND city = 'Beijing';
该语句执行后,若发现 type=ALL 且 rows 值较大,说明进行了全表扫描。应检查是否在 city 或 age 上建立联合索引,以减少扫描行数并避免临时排序。

2.3 识别全表扫描与索引失效典型场景

在数据库查询优化中,全表扫描和索引失效是性能瓶颈的常见根源。理解其触发条件有助于精准定位问题。
常见索引失效场景
  • 对索引列使用函数或表达式,如 WHERE YEAR(create_time) = 2023
  • 隐式类型转换,如字符串字段与数字比较
  • 使用 OR 条件时部分字段无索引
  • 最左前缀原则被破坏,如联合索引 (a, b, c) 未从 a 开始使用
全表扫描识别方法
通过执行计划分析是否出现全表扫描:
EXPLAIN SELECT * FROM users WHERE name LIKE '%John%';
该查询因模糊匹配前置通配符导致索引失效,type=ALL 表示全表扫描,应改用后置通配符或引入全文索引。

2.4 借助Performance Schema深入追踪SQL性能

MySQL的Performance Schema为数据库性能分析提供了低开销的运行时监控能力,尤其适用于深度追踪SQL执行瓶颈。
启用与配置
默认情况下Performance Schema已启用,可通过以下命令验证状态:
SHOW VARIABLES LIKE 'performance_schema';
若返回值为ON,则表示已激活。该功能通过内存表记录事件,不影响正常事务处理。
关键性能表
重点关注以下三张表以定位慢查询:
  • events_statements_history:记录每个线程最近的SQL语句事件
  • events_waits_history:展示SQL等待资源的详细信息
  • file_summary_by_instance:统计文件I/O操作,识别磁盘读写热点
实战示例:定位高延迟查询
查询执行时间超过1秒的SQL语句:
SELECT sql_text, timer_wait / 1000000000 AS latency_sec
FROM performance_schema.events_statements_history
WHERE timer_wait > 1000000000000
ORDER BY timer_wait DESC LIMIT 5;
其中timer_wait单位为皮秒,转换为秒需除以10^12,结果可直观反映响应延迟。

2.5 结合监控工具快速锁定高耗时语句

在高并发系统中,数据库性能瓶颈常源于少数高耗时SQL语句。通过集成Prometheus与Grafana构建实时监控体系,可对SQL执行时间进行可视化追踪。
慢查询识别流程
  • 启用MySQL的慢查询日志(slow_query_log)并设置阈值
  • 使用pt-query-digest分析日志,提取执行时间最长的SQL
  • 结合Performance Schema定位锁等待与资源争用
示例:Prometheus告警规则配置

- alert: HighLatencyQuery
  expr: mysql_slow_queries_duration_seconds > 2
  for: 1m
  labels:
    severity: warning
  annotations:
    summary: "高耗时SQL检测"
    description: "发现执行时间超过2秒的SQL语句,请立即排查"
该规则持续监控慢查询指标,一旦触发即推送至Alertmanager,联动钉钉通知运维人员。
性能数据看板
指标正常值告警阈值
QPS< 5000> 8000
平均响应时间< 50ms> 200ms

第三章:索引设计与优化策略

3.1 高效创建复合索引的原则与案例

复合索引的设计原则
创建复合索引时,应遵循“最左前缀”匹配原则,确保查询条件能有效利用索引。字段顺序至关重要:选择性高的字段应靠前,过滤性强的字段优先。
  • 避免冗余索引,减少写入开销
  • 覆盖索引可避免回表查询,提升性能
  • 索引列不宜过多,通常不超过3~4个
实际案例分析
假设订单表包含用户ID、状态和创建时间:
CREATE INDEX idx_user_status_created ON orders (user_id, status, created_at);
该索引适用于以下查询:
SELECT * FROM orders 
WHERE user_id = 1001 
  AND status = 'paid' 
  AND created_at > '2023-01-01';
此复合索引首先按 user_id 精确匹配,再在结果内按 status 过滤,最后基于 created_at 范围扫描,三层过滤显著提升查询效率。

3.2 覆盖索引减少回表提升查询效率

在MySQL查询优化中,覆盖索引是一种能显著减少I/O操作的策略。当查询的字段全部包含在索引中时,数据库无需回表查询主键对应的数据行,直接从索引即可获取所需信息。
覆盖索引的工作原理
传统查询需通过二级索引找到主键值,再回表查找完整记录。而覆盖索引避免了这一过程:
-- 假设 idx_name_age 为 (name, age) 的联合索引
SELECT name, age FROM users WHERE name = 'Alice';
该查询仅涉及索引字段,无需访问数据页,大幅降低磁盘I/O。
性能对比示例
查询类型是否回表执行效率
普通索引查询是较慢
覆盖索引查询否较快
合理设计联合索引,使常用查询命中覆盖索引,是提升查询性能的关键手段之一。

3.3 避免过度索引带来的写性能损耗

在数据库设计中,索引虽能显著提升查询效率,但过多索引会增加写操作的开销。每次INSERT、UPDATE或DELETE执行时,数据库需同步维护所有相关索引,导致I/O负载上升和事务延迟。
索引与写性能的权衡
每新增一个索引,写入性能通常下降5%~20%,具体取决于数据量和索引结构。应优先为高频查询字段建立索引,避免对低选择性字段(如性别)创建单列索引。
优化示例:合理精简索引
-- 冗余索引示例
CREATE INDEX idx_user_name ON users(name);
CREATE INDEX idx_user_name_age ON users(name, age);

-- 可删除idx_user_name,复合索引已覆盖name单独查询
DROP INDEX idx_user_name;
上述代码中,idx_user_name_age 已包含 name 字段前缀,可支持基于 name 的查询,因此单独的 idx_user_name 成为冗余,删除后减少写维护成本。
  • 定期审查索引使用率,识别未被使用的索引
  • 利用执行计划(EXPLAIN)验证索引实际调用情况
  • 考虑部分索引或函数索引以降低开销

第四章:SQL语句级优化实践

4.1 重写低效SQL:避免SELECT * 和函数索引陷阱

在SQL查询优化中,避免使用 SELECT * 是提升性能的第一步。它不仅增加了I/O负载,还可能导致额外的网络传输开销。
明确字段选择
只查询所需字段,能显著减少数据读取量:
-- 低效写法
SELECT * FROM users WHERE created_at > '2023-01-01';

-- 高效写法
SELECT id, name, email FROM users WHERE created_at > '2023-01-01';
指定具体字段有助于利用覆盖索引,避免回表操作。
警惕函数索引陷阱
对索引列使用函数会导致索引失效:
-- 错误用法:无法使用索引
SELECT id, name FROM users WHERE YEAR(created_at) = 2023;

-- 正确写法:可命中索引
SELECT id, name FROM users WHERE created_at >= '2023-01-01' AND created_at < '2024-01-01';
应将函数应用于比较值而非字段本身,确保索引有效参与查询执行计划。

4.2 优化JOIN操作:驱动表选择与小表前置

在执行JOIN操作时,驱动表的选择直接影响查询性能。数据库通常将左表作为驱动表,因此应优先将数据量较小的表置于左侧,以减少中间结果集的大小。
小表驱动大表原则
遵循“小表驱动大表”的原则,可显著降低资源消耗。优化器基于统计信息评估行数与大小,但显式调整表顺序仍具重要意义。
  • 驱动表决定外层循环次数
  • 小表作为驱动表减少I/O访问
  • 适用于INNER JOIN和LEFT JOIN场景
-- 推荐写法:小表t1放在前面
SELECT * FROM small_table t1 
JOIN large_table t2 ON t1.id = t2.t1_id;
上述SQL中,small_table作为驱动表,逐行匹配large_table,有效控制了连接过程中的数据膨胀。执行计划通常显示更优的cost值与更快的响应时间。

4.3 分页查询优化:游标法替代OFFSET深翻页

在深度分页场景中,传统 OFFSET 方式会导致数据库扫描大量已读记录,性能随偏移量增长急剧下降。游标法(Cursor-based Pagination)通过记录上一页末尾的排序键值,实现“从断点继续”的高效查询。
基于游标的时间戳分页
适用于按时间排序的数据流,如日志或消息列表:
SELECT id, user_id, created_at 
FROM messages 
WHERE created_at < '2023-10-01 10:00:00' 
  AND id < 10000 
ORDER BY created_at DESC, id DESC 
LIMIT 20;
此处 created_at 和 id 组成唯一游标锚点,避免数据重复或遗漏。相比 OFFSET 10000 LIMIT 20,该查询始终定位起始位置,执行效率稳定。
性能对比
方法查询复杂度适用场景
OFFSETO(n + m)浅页展示
游标法O(log n)深翻页、实时流

4.4 子查询与临时表的合理使用建议

在复杂查询中,子查询和临时表是提升逻辑清晰度的重要工具。合理使用可优化执行计划,避免数据冗余。
子查询的应用场景
当需要基于另一查询结果进行过滤时,推荐使用相关子查询或非相关子查询:
SELECT name FROM employees e 
WHERE salary > (SELECT AVG(salary) FROM employees WHERE department = e.department);
该查询查找每个部门中薪资高于平均值的员工。子查询按部门分组计算平均薪资,主查询逐行比较。注意相关子查询会对外部行产生依赖,性能开销较高,应配合索引使用。
临时表的适用时机
对于多步骤聚合或中间结果复用的场景,临时表更高效:
CREATE TEMPORARY TABLE temp_dept_stats AS
SELECT department, AVG(salary) AS avg_sal, COUNT(*) AS emp_count
FROM employees GROUP BY department;
创建临时表缓存部门统计信息,后续可多次引用,避免重复计算。临时表仅在当前会话可见,连接断开后自动清理。
  • 优先使用CTE替代嵌套子查询以提高可读性
  • 大数据量中间结果建议使用临时表并建立索引
  • 避免在高频执行语句中使用复杂子查询

第五章:构建可持续的数据库性能保障体系

监控与告警机制设计
建立全面的数据库监控体系是性能保障的基础。应采集关键指标如查询延迟、连接数、缓存命中率和慢查询日志。使用 Prometheus + Grafana 实现可视化,结合 Alertmanager 设置阈值告警。
  • 监控项包括:QPS、TPS、InnoDB 缓冲池使用率
  • 慢查询阈值建议设置为 100ms,并定期分析执行计划
  • 通过 pt-query-digest 分析日志,识别高频低效 SQL
自动化索引优化策略
-- 示例:基于高频查询自动创建复合索引
CREATE INDEX idx_user_status_created 
ON users (status, created_at) 
WHERE status = 'active';

-- 使用覆盖索引减少回表
SELECT id, name, email 
FROM users 
WHERE status = 'active' AND created_at > '2023-01-01';
容量规划与弹性扩展
制定基于业务增长趋势的容量模型,避免资源瓶颈。采用读写分离与分库分表策略应对高并发场景。
节点类型CPU 核心内存适用场景
主库1664GB高 IOPS 写入
只读副本832GB报表查询分流
故障演练与预案管理
流程图:主库宕机切换流程 1. 检测心跳中断 → 2. 触发 MHA 切换 → 3. 提升备库为主 → 4. DNS 更新指向新主库 → 5. 应用重连恢复
定期执行数据库压测,模拟流量高峰,验证连接池配置与超时策略的有效性。某电商系统在大促前通过 sysbench 模拟 5000 并发,提前发现连接泄漏问题并修复。
MySQL查询性能分析:用SHOW PROFILE快速定位SQL瓶颈 MySQL查询性能分析是数据库调优的基础能力,其核心在于通过语句级时间采样揭示SQL执行各阶段的真实耗时。原理上,它依托Server层12个标准执行阶段的毫秒级计时,精准反映解析、优化、锁等待、IO读写等底层行为。该技术具备零侵入、低开销、高时效的特点,无需修改代码或重启服务,特别适合开发自测与线上应急诊断。典型应用场景包括慢接口根因排查、索引有效性验证、内存与磁盘临时表问题识别,以及亚秒级‘伪健康’查询的深度剖析。本文聚焦MySQL原生`SHOW PROFILE`机制,结合`Sending data`、` 阅读详情

相关推荐

5个高危SQL陷阱:窗口函数、NULL处理与JOIN逻辑避坑指南

SQL是数据工程的基石,但其声明式语法背后隐藏着执行模型与业务语义的深层错位。理解COUNT(DISTINCT)在多表JOIN后的行膨胀原理、LEFT JOIN中ON与WHERE的过滤时机差异,是保障数据准确性的关键;掌握ROW_NUMBER()分区排序的稳定性机制和NULL在聚合运算中的传播特性,则直接决定查询结果是否可重现、可维护。这些并非冷门技巧,而是线上慢查询、数据偏差与报表飘移的共性根源。本文聚焦真实生产场景,解析窗口函数、空值陷阱、关联逻辑等高频tricky点,提供可验证、可监控、可回滚的工程化

weixin_34228387的博客 455

MySQL性能调优:慢查询分析与SQL优化实战指南

慢查询就像是餐厅里那个特别磨蹭的服务员,当其他服务员已经完成了十几单时,他可能还在处理第一单。在MySQL中,慢查询是指执行时间超过系统设定阈值的SQL语句。它们会占用数据库连接资源,增加系统响应时间,降低整体吞吐量,严重时甚至可能导致数据库服务器CPU飙升、内存耗尽。我曾经遇到一个案例,一个电商平台的后台管理系统偶尔会出现长达30秒的响应延迟。经排查发现,一个统计近90天销售数据的报表查询没有合理设计索引,每次查询都需要全表扫描超过1000万条订单记录!

sinat_27016095的博客 1823

SQL Server查询计划解读:从执行原理到性能优化实战

SQL Server查询计划是数据库优化的核心依据,本质是查询优化器基于成本模型(I/O、CPU、内存)计算出的最优执行路径快照。理解其生成机制需掌握统计信息、参数嗅探与计划缓存等底层原理;技术价值在于将模糊的‘慢SQL’问题转化为可量化、可验证的图形化诊断过程——通过运算符形状识别物理操作类型(如索引查找vs扫描),借助颜色区分资源瓶颈(绿色主I/O、黄色主CPU),结合实际行数与估计行数偏差定位统计失真。典型应用场景涵盖OLTP高并发调优、BI报表加速及遗留系统性能治理。本文聚焦实际执行计划分析,深入拆

unixboy 471

数据库DBA_AI写SQL我从写手变审核调优

前阵子我整理了一份"AI 出 SQL 复核清单",组内传阅。不是什么高深东西,就是哪些必须人看、哪些可以放行。它让我从"自己盯"变成"立规矩让人一起盯",算是个小进步。

python1234567_的博客 214

Navicat集成Kimi AI助手实战指南:国产大模型如何提升SQL效率

SQL辅助工具是数据库工程师提效的关键基础设施,其核心在于自然语言理解、数据库方言适配与上下文感知能力。随着AI原生数据库工具兴起,具备中文语义深度优化、超长上下文支持及本地化低延迟响应的国产大模型(如Moonshot Kimi)正成为MySQL、PostgreSQL等主流数据库场景下的高性价比选择。相比通用大模型,它在表结构解析、SQL生成准确性、错误诊断可解释性等方面展现出显著工程优势,广泛应用于查询编写、慢SQL优化、跨库迁移与安全审计等真实生产环节。本文聚焦Navicat 17中Kimi AI助手的

weixin_27743991的博客 435

MySQL入门实战:从安装配置到核心操作与性能优化指南

数据库作为现代应用的数据存储与管理核心,其核心原理在于通过结构化方式组织数据,并提供高效的数据操作接口。在众多数据库技术中,关系型数据库通过表结构定义数据关系,利用SQL语言实现数据操作,其技术价值体现在数据一致性、事务支持与并发控制能力上,广泛应用于Web应用、企业系统和数据分析等场景。本文聚焦于MySQL这一广泛应用的关系型数据库,深入探讨其安装部署、安全配置、核心SQL操作及索引优化等实践要点,并结合事务处理与备份恢复等热词,为开发者提供从入门到进阶的系统性指导。

weixin_30417487的博客 439

Qwen2.5-Coder-1.5B实际作品:SQL优化建议+Shell自动化脚本生成

本文介绍了如何在星图GPU平台上自动化部署Qwen2.5-Coder-1.5B镜像,高效支持SQL查询优化与Shell脚本生成等开发运维任务。用户可快速获得可落地的数据库索引建议、执行计划分析及带错误处理、日志记录和自动清理功能的生产级Shell脚本,显著提升DBA与全栈工程师的日常编码效率。

weixin_42598278的博客 249

5个生产级SQL陷阱解析:窗口函数、NULL处理与JOIN避坑指南

SQL查询是数据工程的核心能力,但真实业务中的复杂查询远超基础语法范畴。理解执行计划、窗口函数原理、NULL值在聚合中的静默行为、外连接的过滤逻辑,以及连续序列识别等底层机制,直接决定查询的正确性与性能。尤其在MySQL 8.0+与旧版本兼容、大数据量下的索引利用、业务语义对并列结果的精度要求等场景中,单一‘标准答案’极易引发线上故障。本文聚焦高危但高频的5类典型问题,结合EXPLAIN分析、版本适配策略与实测性能对比,为数据工程师提供可落地的诊断框架与生产级实现范式。

hideto 480

You-Dont-Need-JavaScript 实战:用纯 CSS @keyframes 实现 Dancing Alphabets 字母舞蹈动画

Dancing Alphabets 是 [You-Dont-Need-JavaScript](https://link.gitcode.com/i/bcd8d2ff9ef812c5bc2e5e15a52e4444) 仓库中的一个纯 CSS 动画示例,它仅用 HTML 结构配合 CSS `@keyframes` 关键帧动画,就让一行文字中的每个字母依次"跳动"起来,全程零 JavaScript。本篇

gitblog_00704的博客 128

S32K144(1)新建裸机项目以及烧录调试工程

目录 1、简介 2、S32DS新建裸机项目 2.1、新建空的项目 2.2、选择标准库的S32DS 2.3、选择使用EWL官方库 2.4、新建成功 3、烧录工程 3.1、点击Debug,选择Debug Configurations 3.2、新建GDB SEGGER J-Link Debugging 3.3、确认Project和C/C++ Applicants是需要烧写的项目名和路径正确 3.4、确认Executable Device name Interface等各个配置信息正确,后点击

朗朗上口就行啦的博客 4977

量化交易新手必看:如何用Python快速接入XTP极速交易系统(附避坑指南)

本文为量化交易新手提供了使用Python快速接入中泰证券XTP极速交易系统的完整指南。文章详细介绍了XTP系统的微秒级性能优势、与CTP系统的核心区别,并逐步讲解了环境配置、API连接、资金查询、下单撤单等关键步骤,同时分享了网络维护、订单处理等实战避坑技巧,帮助开发者高效对接专业交易柜台。

life6的博客 660

Yi-Coder-1.5B MySQL优化:智能查询生成与索引建议

本文介绍了如何在星图GPU平台上自动化部署【ollama】Yi-Coder-1.5B镜像,赋能MySQL数据库智能优化。该轻量级代码语言模型可基于自然语言需求自动生成高效SQL查询,并提供精准的复合索引建议,典型应用于电商订单性能调优与慢查询诊断场景。

weixin_42584758的博客 405

告别简陋行情!在Ubuntu24.04系统用Wine9.0跑同花顺远航版的全流程记录

本文详细记录了在Ubuntu 24.04系统上,通过Wine 9.0兼容层成功安装并流畅运行同花顺远航版的全过程。文章对比了该方案与官方简陋Linux原生版本的功能差异,重点解决了高分辨率屏幕下的字体与界面显示问题,并提供了关键配置调优与长期维护建议,为Linux用户提供了功能完备的专业金融行情解决方案。

weixin_29207533的博客 1078

Qwen2.5-Coder-1.5B在MySQL优化中的应用:SQL语句自动生成

本文介绍了如何在星图GPU平台上一键自动化部署Qwen2.5-Coder-1.5B镜像,实现MySQL数据库SQL语句的自动生成与优化。该镜像能快速将自然语言需求转化为高效SQL查询,显著提升电商、数据分析等场景的数据库操作效率,助力开发者轻松完成查询优化与性能调优。

weixin_33480380的博客 125

Python爬虫实战:5分钟搞定慢慢买历史价格查询(附完整代码)

本文提供了一份Python爬虫实战指南,教你如何快速编写脚本自动查询慢慢买网站的商品历史价格。文章详细拆解了环境准备、接口分析、核心代码实现及常见问题应对,并附有完整代码,帮助读者将爬虫技术应用于日常比价,实现高效购物决策。

weixin_29053577的博客 1015

专为AI打造的浏览器:内存占用仅为Chrome的1/9、比Chrome快11倍(Docker部署教程,支持飞牛nas等服务器部署)

🚀 专为AI打造的无头浏览器来了! 用Zig从零构建,内存仅Chrome的1/9,速度快11倍,原生CDP协议支持Docker部署,适合爬虫、自动化测试和AI代理应用。✨

XiaoqiangClub的博客 734

PostgreSQL执行计划详解:从看懂到优化慢查询的完整指南

在数据库性能优化领域,执行计划是理解SQL查询执行路径的核心工具。其原理是数据库优化器根据统计信息和成本模型,生成数据检索与处理的最优步骤序列。掌握执行计划的技术价值在于,它能将性能调优从经验猜测转变为数据驱动的科学决策,直接提升查询效率和系统稳定性。这一技能在OLTP系统、数据分析平台和高并发应用等场景中尤为重要。本文聚焦PostgreSQL数据库,深入解读执行计划中的关键节点如顺序扫描、索引扫描及哈希连接,并结合慢SQL优化和索引失效等常见性能问题,提供从诊断到解决的全流程实践方案,帮助开发者构建高效的

weixin_34005042的博客 487

Python中的字典(Dictionary)学习

上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢?但是这样很不方便,我们把电话号码记录下来,就是为了有什么事能及时联系上这些童鞋。如果用列表来存储这些,列表越长,我们查找起来耗时就越长。

热情、奔放、快乐编程! 503

Snapcast 2025多房间音频同步指南:4项核心改进与快速上手

Snapcast 是一款开源的多房间音频同步播放器。它让家里的多台音箱以相同节奏播放同一首音乐。本文带你了解 2025 版的适用场景与 4 项核心改进。你也能拿到最小启动路径,一次读懂多房间音频怎么搭。 [![Snapcast多房间音频同步架构:一台服务器向多个客户端同步发送音频](https://raw.gitcode.com/gh_mirrors/sn/snapcast/raw/fa80ef

gitblog_01015的博客 138

Open3D点云数据处理(五):点云、mesh可视化(draw_geometries方法)

本文介绍了Open3D中的draw_geometries可视化方法,可以用于可视化点云和mesh。详细讲述了该方法的各个参数的作用,给出了代码示例。

孙悟空 3142

卫星轨道坐标转换:轨道六根数到经纬高(经STK验证)

a:半长轴(km)e:偏心率i:轨道倾角(度)Ω:升交点赤经(度)ω:近地点幅角(度)ν:真近点角(度)

weixin_52370774的博客 171

Nano-Banana与MySQL数据库智能查询优化

本文介绍了如何在星图GPU平台上自动化部署🍌 Nano-Banana 产品拆解引擎镜像,实现MySQL数据库SQL语句的智能理解与查询优化。该镜像可自动分析慢查询、生成自然语言解释及可执行的索引建议,典型应用于电商订单/商品详情页性能诊断与优化,显著降低响应延迟并提升QPS。

weixin_32252929的博客 245

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SQL索引优化实战:提升查询性能10倍的黄金法则

数据库索引是提升SQL查询性能的核心技术,其本质是通过B+树等数据结构建立数据目录,避免全表扫描。在OLTP系统中,合理的索引策略能使查询速度提升10-100倍,特别是在电商订单、用户管理等高频查询场景。本文通过电商系统真实案例,详解如何运用最左前缀原则、覆盖索引等技巧,解决索引失效、过度索引等典型问题。针对MySQL/PostgreSQL等不同数据库,还特别解析了索引下推(ICP)、函数索引等高级特性,帮助开发者从原理到实战全面掌握索引优化方法论。

weixin_33711647的博客 570

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

PostgreSQL老手效率翻倍秘籍:psql命令行你不知道的10个实用技巧与脚本自动化

本文揭秘PostgreSQL psql命令行的10个实用技巧与脚本自动化方法,帮助开发者提升工作效率。从交互式查询、元命令应用到脚本自动化,涵盖历史命令检索、输出格式控制、事务管理等高级功能,特别适合需要频繁操作PostgreSQL的专业人士。

weixin_30733003的博客 314

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SELECT性能优化实战:从排序分页到执行计划深度解析

SELECT是SQL中最基础也最易被低估的语句,其本质并非简单取数,而是触发数据库解析、优化、执行、排序、分页等完整引擎协作流程。理解SELECT的执行原理,关键在于掌握索引如何影响WHERE过滤、ORDER BY如何避免filesort、LIMIT OFFSET为何导致深分页性能雪崩,以及游标分页如何实现恒定延迟。这些技术价值直接决定高并发场景下的查询响应、系统吞吐与稳定性。典型应用场景包括用户列表渲染、订单报表统计、后台管理分页及实时数据看板。本文聚焦真实生产环境中的SELECT性能瓶颈,结合EXPLA

weixin_32306957的博客 232

Navicat AI功能实战:SQL生成、调试与优化全解析

SQL作为数据库操作的核心语言,其编写与优化是数据工程师和开发者的必备技能。传统SQL开发依赖人工记忆语法、手动调试,效率瓶颈明显。随着AI编程技术的成熟,智能化辅助工具开始渗透到数据库工作流中,通过自然语言理解、代码生成与性能分析,实现了效率的范式转移。这类工具的核心价值在于将开发者从繁琐的语法细节中解放出来,聚焦于业务逻辑与数据价值挖掘。在数据库管理领域,Navicat等工具集成的AI功能,如智能SQL生成、错误调试与查询优化,正成为提升开发效率、降低学习成本的关键应用。本文以Navicat的“询问AI

weixin_30924087的博客 326
上一篇: iOS程序员节精选工具清单(仅限今日):提升开发效率的7款稀缺神器
下一篇: 数据库事务隔离级别深度解析(从脏读到幻读,一文讲透)
MessyInk
博客等级 码龄11年 136粉丝 1992原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值