揭秘MySQL数据库优化秘籍:从慢查询到高速响应的蜕变之旅

发布时间: 2024-07-26 15:01:58 阅读量: 28 订阅数: 50
![揭秘MySQL数据库优化秘籍:从慢查询到高速响应的蜕变之旅](https://img-blog.csdnimg.cn/10242b5e415c446f99e5bacd70492b47.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5q2q5qGD,size_20,color_FFFFFF,t_70,g_se,x_16) # 1. MySQL数据库优化概述** MySQL数据库优化旨在提高数据库的性能、效率和可靠性。它涉及一系列技术和最佳实践,用于解决数据库系统中常见的瓶颈和问题。通过优化数据库,可以显著提升应用程序的响应时间、吞吐量和整体用户体验。 优化过程通常包括以下几个方面: - 慢查询分析和优化:识别和解决导致性能下降的慢查询。 - 数据库结构优化:设计和维护高效的表结构、索引和分区。 - 数据库性能调优:调整硬件资源、数据库参数和监控机制,以最大化性能。 - 数据库安全与备份:实施安全措施和备份策略,以保护数据免遭未经授权的访问和丢失。 # 2. 慢查询分析与优化 ### 2.1 慢查询日志的配置和分析 #### 2.1.1 慢查询日志的开启和配置 慢查询日志记录了执行时间超过指定阈值的 SQL 语句,是分析慢查询问题的重要依据。开启慢查询日志需要修改 MySQL 配置文件 `my.cnf`,添加以下配置: ``` [mysqld] slow_query_log=1 slow_query_log_file=/var/log/mysql/slow.log long_query_time=1 ``` * `slow_query_log`:开启慢查询日志。 * `slow_query_log_file`:指定慢查询日志文件路径。 * `long_query_time`:设置慢查询阈值,单位为秒。 #### 2.1.2 慢查询日志的分析和解读 慢查询日志文件包含了慢查询语句的详细信息,包括: * SQL 语句文本 * 执行时间 * 调用堆栈 * 锁信息 分析慢查询日志时,需要关注以下字段: * `Time`:执行时间,单位为秒。 * `Query_time`:SQL 语句执行时间,单位为秒。 * `Rows_sent`:查询返回的行数。 * `Rows_examined`:查询扫描的行数。 * `Lock_time`:锁等待时间,单位为秒。 通过分析这些字段,可以初步判断慢查询的原因,如索引缺失、SQL 语句不合理、锁竞争等。 ### 2.2 SQL 语句优化 #### 2.2.1 索引的创建和优化 索引是数据库中用于快速查找数据的结构,创建合理的索引可以显著提升查询性能。 **创建索引** 创建索引时,需要考虑以下因素: * **选择合适的字段:**索引字段应为频繁查询的字段,且具有较高的基数。 * **选择合适的索引类型:**不同类型的索引适合不同的查询模式。常用索引类型包括 B-Tree 索引、哈希索引和全文索引。 * **避免冗余索引:**不要创建重复或覆盖其他索引的索引。 **优化索引** 已创建的索引也需要定期优化,以确保其有效性。优化索引的方法包括: * **重建索引:**当索引碎片较多时,需要重建索引以提高查询效率。 * **合并索引:**将多个查询模式相似的索引合并为一个索引,可以减少索引数量,提高查询速度。 * **删除不必要的索引:**如果某个索引的使用率很低,可以考虑删除该索引以释放资源。 #### 2.2.2 SQL 语句的重写和调优 除了创建索引外,还可以通过重写和调优 SQL 语句来提升查询性能。 **SQL 语句重写** * **使用更简单的语法:**避免使用复杂的子查询、连接和聚合函数。 * **优化表连接:**使用 `JOIN` 替代 `IN` 和 `EXISTS`。 * **避免全表扫描:**使用 `WHERE` 子句和索引来缩小查询范围。 **SQL 语句调优** * **使用参数化查询:**使用参数化查询可以防止 SQL 注入攻击,并提高查询效率。 * **使用临时表:**对于需要多次查询同一数据集的情况,可以将数据集存储在临时表中,以避免重复查询。 * **使用缓存:**对于经常查询的数据,可以将其缓存起来,以减少数据库访问次数。 ### 2.3 查询计划的分析和优化 #### 2.3.1 查询计划的获取和解读 查询计划是 MySQL 在执行 SQL 语句之前制定的执行方案,通过分析查询计划可以了解 SQL 语句的执行流程和优化点。 获取查询计划的方法: ``` EXPLAIN <SQL 语句> ``` 查询计划的解读: * **id:**查询计划的标识符。 * **select_type:**查询类型,如 SIMPLE、PRIMARY。 * **table:**参与查询的表。 * **type:**访问类型,如 index、range、ref。 * **possible_keys:**可能使用的索引。 * **key:**实际使用的索引。 * **rows:**估计扫描的行数。 #### 2.3.2 查询计划的优化和调整 分析查询计划后,可以根据以下原则进行优化: * **选择合适的访问类型:**尽可能使用索引访问,避免全表扫描。 * **优化索引使用:**确保查询使用了合适的索引,并避免索引覆盖。 * **减少扫描行数:**通过添加索引或重写 SQL 语句来缩小查询范围。 * **优化连接顺序:**对于多表连接查询,优化连接顺序可以减少扫描行数。 # 3. 数据库结构优化 ### 3.1 表结构的设计和优化 **3.1.1 表结构的规范化和反规范化** 规范化是一种将表中的数据组织成多个相关表的原则。它的目的是消除数据冗余,确保数据的一致性和完整性。规范化的级别通常分为第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 反规范化是将多个表中的数据合并到一个表中的过程。它可以提高查询性能,但会引入数据冗余和一致性问题。反规范化通常用于数据仓库和联机分析处理(OLAP)系统中。 **3.1.2 字段类型和长度的优化** 选择正确的字段类型和长度可以优化表的存储空间和查询性能。例如: * 使用整数类型存储整数数据,而不是字符串类型。 * 使用适当长度的字段来避免浪费存储空间。 * 使用枚举类型来限制数据范围,提高查询效率。 ### 3.2 索引的创建和维护 **3.2.1 索引类型的选择和创建** 索引是一种数据结构,它可以快速查找表中的数据。MySQL支持多种索引类型,包括: * B-Tree 索引:一种平衡树结构,用于快速查找和范围查询。 * 哈希索引:一种哈希表结构,用于快速查找相等查询。 * 全文索引:一种用于全文搜索的特殊索引。 选择正确的索引类型取决于查询模式和表结构。 **3.2.2 索引的维护和重建** 随着数据的插入、更新和删除,索引可能会变得碎片化,从而影响查询性能。定期维护和重建索引可以确保索引的效率。 ### 3.3 分区和分表的应用 **3.3.1 分区的概念和实现** 分区是一种将表中的数据水平划分为多个较小的部分。每个分区可以独立管理,这可以提高查询性能和可伸缩性。 **3.3.2 分表的概念和应用** 分表是一种将表中的数据垂直划分为多个较小的表。每个分表包含表的不同列。分表可以提高查询性能,特别是在需要经常访问表中的特定列时。 # 4. 数据库性能调优 ### 4.1 硬件资源的优化 #### 4.1.1 CPU、内存和存储的配置和优化 **CPU优化** * **CPU核数:**根据数据库负载和并发量选择合适的CPU核数,一般情况下,核心数越多,数据库性能越好。 * **CPU频率:**更高的CPU频率可以加快指令执行速度,提升数据库处理能力。 * **CPU缓存:**CPU缓存可以存储最近访问的数据和指令,减少内存访问延迟,提高数据库性能。 **内存优化** * **内存容量:**充足的内存可以避免数据库频繁访问磁盘,减少I/O操作,提升数据库性能。 * **缓冲池:**缓冲池用于缓存经常访问的数据,提高数据访问速度。增大缓冲池大小可以提高数据库性能。 * **连接池:**连接池可以减少数据库连接的创建和销毁开销,提高数据库并发处理能力。 **存储优化** * **存储类型:**选择高性能的存储介质,如固态硬盘(SSD)或 NVMe 存储,可以大幅提升数据库的I/O性能。 * **RAID配置:**RAID(Redundant Array of Independent Disks)技术可以提高数据的可靠性和性能。选择合适的RAID级别,如RAID 10或RAID 5,可以平衡数据保护和性能。 * **文件系统:**使用高性能的文件系统,如XFS或Ext4,可以优化数据库文件I/O操作,提升数据库性能。 #### 4.1.2 I/O性能的优化 **I/O调度器** * **NOOP:**无调度器,直接处理I/O请求,适合高负载环境。 * **CFQ:**公平调度器,保证每个进程公平获取I/O资源,适合混合负载环境。 * **Deadline:**基于截止时间的调度器,为每个I/O请求设置截止时间,超时则丢弃请求,适合实时性要求高的环境。 **I/O队列深度** * I/O队列深度是指等待处理的I/O请求数量。适当增加I/O队列深度可以提高数据库的I/O吞吐量。 * 过大的I/O队列深度可能会导致I/O资源争用,降低数据库性能。 **I/O合并** * I/O合并技术可以将多个小I/O请求合并成一个大请求,减少I/O操作次数,提升数据库性能。 * I/O合并的粒度可以通过`io_submit_rw_merge`参数进行配置。 ### 4.2 数据库参数的调优 #### 4.2.1 缓冲池、连接池和锁机制的调优 **缓冲池调优** * **缓冲池大小:**增大缓冲池大小可以减少数据库访问磁盘的频率,提升数据库性能。 * **缓冲池命中率:**缓冲池命中率是指从缓冲池中获取数据成功的比例。通过监控缓冲池命中率,可以判断缓冲池大小是否合适。 **连接池调优** * **最大连接数:**设置合理的连接池最大连接数,避免数据库连接过多导致资源耗尽。 * **最小连接数:**设置合理的连接池最小连接数,保证数据库有足够的连接资源可用。 **锁机制调优** * **锁类型:**MySQL支持多种锁类型,如表锁、行锁和间隙锁。根据业务场景选择合适的锁类型可以减少锁争用,提升数据库并发处理能力。 * **锁等待超时:**设置合理的锁等待超时时间,避免长时间的锁等待导致数据库死锁。 #### 4.2.2 内存管理和日志配置的优化 **内存管理优化** * **innodb_buffer_pool_size:**设置合理的InnoDB缓冲池大小,保证数据库有足够的内存资源可用。 * **innodb_buffer_pool_instances:**设置合理的InnoDB缓冲池实例数,可以提高缓冲池的并发访问能力。 * **tmp_table_size:**设置合理的临时表大小,避免临时表占用过多内存资源。 **日志配置优化** * **redo log buffer size:**增大redo log buffer size可以减少redo log写入磁盘的频率,提升数据库性能。 * **sync_binlog:**设置合理的binlog同步策略,平衡数据安全性与性能。 * **innodb_flush_log_at_trx_commit:**设置合理的InnoDB日志刷盘策略,平衡数据安全性与性能。 ### 4.3 监控和预警机制的建立 #### 4.3.1 性能监控指标的收集和分析 **CPU使用率:**监控数据库服务器的CPU使用率,判断是否存在CPU瓶颈。 **内存使用率:**监控数据库服务器的内存使用率,判断是否存在内存瓶颈。 **I/O吞吐量:**监控数据库服务器的I/O吞吐量,判断是否存在I/O瓶颈。 **查询响应时间:**监控数据库查询的响应时间,判断是否存在慢查询问题。 **连接数:**监控数据库的连接数,判断是否存在连接过多问题。 #### 4.3.2 预警机制的建立和响应 * **阈值设置:**为每个性能监控指标设置合理的阈值,当指标超过阈值时触发预警。 * **预警通知:**通过邮件、短信或其他方式将预警信息通知相关人员。 * **响应措施:**制定预警响应措施,如调整数据库参数、优化SQL语句或增加硬件资源。 # 5. 数据库安全与备份 数据库安全和备份是确保数据库系统稳定性和数据完整性的关键方面。本章节将介绍数据库安全措施和备份与恢复策略,以帮助保护数据库免受威胁并确保数据可用性。 ### 5.1 数据库安全措施 #### 5.1.1 权限管理和访问控制 权限管理是数据库安全的基础。它涉及到对用户授予适当的权限,以访问和操作数据库中的数据。MySQL提供了细粒度的权限控制,允许管理员指定用户对特定数据库、表、视图和存储过程的权限。 **操作步骤:** 1. 使用 `GRANT` 语句授予用户权限: ```sql GRANT SELECT, INSERT, UPDATE, DELETE ON database.table TO user@host; ``` 2. 使用 `REVOKE` 语句撤销用户权限: ```sql REVOKE SELECT, INSERT, UPDATE, DELETE ON database.table FROM user@host; ``` #### 5.1.2 数据加密和脱敏 数据加密和脱敏是保护敏感数据免受未经授权访问的重要措施。MySQL支持多种加密算法,如 AES-256,用于加密存储在数据库中的数据。脱敏涉及使用算法或技术来模糊或掩盖敏感数据,以防止泄露。 **操作步骤:** 1. 使用 `ENCRYPT()` 函数加密数据: ```sql UPDATE table SET sensitive_column = ENCRYPT('secret_value'); ``` 2. 使用 `DECRYPT()` 函数解密数据: ```sql SELECT DECRYPT(sensitive_column) FROM table; ``` ### 5.2 数据库备份与恢复 #### 5.2.1 备份策略的制定和实施 定期备份数据库对于灾难恢复和数据保护至关重要。MySQL提供了多种备份方法,包括: - **物理备份:**使用 `mysqldump` 工具创建数据库的物理副本。 - **逻辑备份:**使用 `binlog` 文件记录数据库中发生的更改。 - **增量备份:**仅备份自上次备份以来发生更改的数据。 **操作步骤:** 1. 使用 `mysqldump` 创建物理备份: ``` mysqldump -u root -p database > backup.sql ``` 2. 使用 `binlog` 文件进行逻辑备份: ``` mysqlbinlog --start-datetime='2023-01-01 00:00:00' --stop-datetime='2023-01-02 00:00:00' > backup.binlog ``` #### 5.2.2 恢复操作的执行和验证 数据库恢复涉及从备份中还原数据。MySQL提供了多种恢复选项,包括: - **从物理备份恢复:**使用 `mysql` 工具将备份文件导入数据库。 - **从逻辑备份恢复:**使用 `mysqlbinlog` 工具重放 `binlog` 文件中的更改。 - **从增量备份恢复:**将增量备份应用到现有备份上。 **操作步骤:** 1. 从物理备份恢复: ``` mysql -u root -p database < backup.sql ``` 2. 从逻辑备份恢复: ``` mysqlbinlog backup.binlog | mysql -u root -p database ``` # 6. MySQL数据库优化最佳实践 ### 6.1 数据库设计和建模的最佳实践 * **规范化数据模型:**将数据分解为多个相互关联的表,以消除冗余和提高数据完整性。 * **选择合适的表类型:**根据数据访问模式选择合适的表类型,如 MyISAM、InnoDB 或 NDB。 * **优化字段类型和长度:**选择最合适的字段类型和长度,以减少存储空间和提高查询性能。 * **创建适当的索引:**创建索引以加快对数据的访问,但要避免创建不必要的索引,以免影响插入和更新操作。 * **考虑分区分表:**对于大型数据集,考虑使用分区或分表来提高查询性能和可管理性。 ### 6.2 SQL语句编写的最佳实践 * **使用适当的连接类型:**选择最合适的连接类型,如 INNER JOIN、LEFT JOIN 或 RIGHT JOIN,以获取所需的数据。 * **优化子查询:**避免使用嵌套子查询,改用 JOIN 或 EXISTS 等替代方案。 * **使用索引提示:**在查询中使用索引提示,以强制 MySQL 使用特定索引来执行查询。 * **避免全表扫描:**使用 WHERE 子句或索引来过滤数据,避免对整个表进行扫描。 * **使用 LIMIT 子句:**在查询中使用 LIMIT 子句来限制返回的结果集大小,提高查询性能。 ### 6.3 数据库性能调优的最佳实践 * **监控数据库性能:**定期监控数据库性能指标,如查询时间、连接数和内存使用情况。 * **优化缓冲池:**调整缓冲池大小以优化数据缓存,减少磁盘 I/O 操作。 * **优化连接池:**调整连接池大小以管理数据库连接,避免连接耗尽。 * **优化锁机制:**了解并优化数据库锁机制,以减少锁争用和提高并发性。 * **使用 EXPLAIN 分析查询计划:**使用 EXPLAIN 分析查询计划,以了解 MySQL 如何执行查询并识别优化机会。 ### 6.4 数据库安全和备份的最佳实践 * **实施强密码策略:**为数据库用户设置强密码,并定期更新。 * **使用权限管理:**授予用户仅执行其工作所需的最低权限。 * **定期备份数据库:**定期备份数据库以防止数据丢失,并制定恢复计划。 * **加密敏感数据:**对敏感数据进行加密以防止未经授权的访问。 * **进行安全审计:**定期进行安全审计以识别和修复安全漏洞。
corwn 最低0.47元/天 解锁专栏
买1年送3月
点击查看下一篇
profit 百万级 高质量VIP文章无限畅学
profit 千万级 优质资源任意下载
profit C知道 免费提问 ( 生成式Al产品 )

相关推荐

LI_李波

资深数据库专家
北理工计算机硕士,曾在一家全球领先的互联网巨头公司担任数据库工程师,负责设计、优化和维护公司核心数据库系统,在大规模数据处理和数据库系统架构设计方面颇有造诣。
专栏简介
本专栏深入探讨了 MySQL 数据库的方方面面,从基础连接到高级优化,涵盖了广泛的主题。它提供了全面的指南,帮助读者解决连接问题、优化数据库性能、提升查询速度、设计高效的表结构、确保数据一致性和完整性、实现备份和恢复、配置高可用性、监控和分析数据库运行状况、加固数据库安全、解决常见错误、创建存储过程和函数、自动化数据库操作、简化数据查询、了解锁机制、实现数据复制、采用分库分表策略、探索 NoSQL 特性、部署和管理集群,以及分享最佳运维实践。通过深入浅出的讲解和丰富的案例分析,本专栏旨在帮助读者全面掌握 MySQL 数据库,提升数据库管理和优化技能,为业务提供稳定、高效、安全的数据库解决方案。

专栏目录

最低0.47元/天 解锁专栏
买1年送3月
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
C知道 免费提问 ( 生成式Al产品 )

最新推荐

极端事件预测:如何构建有效的预测区间

![机器学习-预测区间(Prediction Interval)](https://d3caycb064h6u1.cloudfront.net/wp-content/uploads/2020/02/3-Layers-of-Neural-Network-Prediction-1-e1679054436378.jpg) # 1. 极端事件预测概述 极端事件预测是风险管理、城市规划、保险业、金融市场等领域不可或缺的技术。这些事件通常具有突发性和破坏性,例如自然灾害、金融市场崩盘或恐怖袭击等。准确预测这类事件不仅可挽救生命、保护财产,而且对于制定应对策略和减少损失至关重要。因此,研究人员和专业人士持

【实时系统空间效率】:确保即时响应的内存管理技巧

![【实时系统空间效率】:确保即时响应的内存管理技巧](https://cdn.educba.com/academy/wp-content/uploads/2024/02/Real-Time-Operating-System.jpg) # 1. 实时系统的内存管理概念 在现代的计算技术中,实时系统凭借其对时间敏感性的要求和对确定性的追求,成为了不可或缺的一部分。实时系统在各个领域中发挥着巨大作用,比如航空航天、医疗设备、工业自动化等。实时系统要求事件的处理能够在确定的时间内完成,这就对系统的设计、实现和资源管理提出了独特的挑战,其中最为核心的是内存管理。 内存管理是操作系统的一个基本组成部

学习率对RNN训练的特殊考虑:循环网络的优化策略

![学习率对RNN训练的特殊考虑:循环网络的优化策略](https://img-blog.csdnimg.cn/20191008175634343.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTYxMTA0NQ==,size_16,color_FFFFFF,t_70) # 1. 循环神经网络(RNN)基础 ## 循环神经网络简介 循环神经网络(RNN)是深度学习领域中处理序列数据的模型之一。由于其内部循环结

时间序列分析的置信度应用:预测未来的秘密武器

![时间序列分析的置信度应用:预测未来的秘密武器](https://cdn-news.jin10.com/3ec220e5-ae2d-4e02-807d-1951d29868a5.png) # 1. 时间序列分析的理论基础 在数据科学和统计学中,时间序列分析是研究按照时间顺序排列的数据点集合的过程。通过对时间序列数据的分析,我们可以提取出有价值的信息,揭示数据随时间变化的规律,从而为预测未来趋势和做出决策提供依据。 ## 时间序列的定义 时间序列(Time Series)是一个按照时间顺序排列的观测值序列。这些观测值通常是一个变量在连续时间点的测量结果,可以是每秒的温度记录,每日的股票价

【算法竞赛中的复杂度控制】:在有限时间内求解的秘籍

![【算法竞赛中的复杂度控制】:在有限时间内求解的秘籍](https://dzone.com/storage/temp/13833772-contiguous-memory-locations.png) # 1. 算法竞赛中的时间与空间复杂度基础 ## 1.1 理解算法的性能指标 在算法竞赛中,时间复杂度和空间复杂度是衡量算法性能的两个基本指标。时间复杂度描述了算法运行时间随输入规模增长的趋势,而空间复杂度则反映了算法执行过程中所需的存储空间大小。理解这两个概念对优化算法性能至关重要。 ## 1.2 大O表示法的含义与应用 大O表示法是用于描述算法时间复杂度的一种方式。它关注的是算法运行时

机器学习性能评估:时间复杂度在模型训练与预测中的重要性

![时间复杂度(Time Complexity)](https://ucc.alicdn.com/pic/developer-ecology/a9a3ddd177e14c6896cb674730dd3564.png) # 1. 机器学习性能评估概述 ## 1.1 机器学习的性能评估重要性 机器学习的性能评估是验证模型效果的关键步骤。它不仅帮助我们了解模型在未知数据上的表现,而且对于模型的优化和改进也至关重要。准确的评估可以确保模型的泛化能力,避免过拟合或欠拟合的问题。 ## 1.2 性能评估指标的选择 选择正确的性能评估指标对于不同类型的机器学习任务至关重要。例如,在分类任务中常用的指标有

激活函数理论与实践:从入门到高阶应用的全面教程

![激活函数理论与实践:从入门到高阶应用的全面教程](https://365datascience.com/resources/blog/thumb@1024_23xvejdoz92i-xavier-initialization-11.webp) # 1. 激活函数的基本概念 在神经网络中,激活函数扮演了至关重要的角色,它们是赋予网络学习能力的关键元素。本章将介绍激活函数的基础知识,为后续章节中对具体激活函数的探讨和应用打下坚实的基础。 ## 1.1 激活函数的定义 激活函数是神经网络中用于决定神经元是否被激活的数学函数。通过激活函数,神经网络可以捕捉到输入数据的非线性特征。在多层网络结构

Epochs调优的自动化方法

![ Epochs调优的自动化方法](https://img-blog.csdnimg.cn/e6f501b23b43423289ac4f19ec3cac8d.png) # 1. Epochs在机器学习中的重要性 机器学习是一门通过算法来让计算机系统从数据中学习并进行预测和决策的科学。在这一过程中,模型训练是核心步骤之一,而Epochs(迭代周期)是决定模型训练效率和效果的关键参数。理解Epochs的重要性,对于开发高效、准确的机器学习模型至关重要。 在后续章节中,我们将深入探讨Epochs的概念、如何选择合适值以及影响调优的因素,以及如何通过自动化方法和工具来优化Epochs的设置,从而

【批量大小与存储引擎】:不同数据库引擎下的优化考量

![【批量大小与存储引擎】:不同数据库引擎下的优化考量](https://opengraph.githubassets.com/af70d77741b46282aede9e523a7ac620fa8f2574f9292af0e2dcdb20f9878fb2/gabfl/pg-batch) # 1. 数据库批量操作的理论基础 数据库是现代信息系统的核心组件,而批量操作作为提升数据库性能的重要手段,对于IT专业人员来说是不可或缺的技能。理解批量操作的理论基础,有助于我们更好地掌握其实践应用,并优化性能。 ## 1.1 批量操作的定义和重要性 批量操作是指在数据库管理中,一次性执行多个数据操作命

【损失函数与随机梯度下降】:探索学习率对损失函数的影响,实现高效模型训练

![【损失函数与随机梯度下降】:探索学习率对损失函数的影响,实现高效模型训练](https://img-blog.csdnimg.cn/20210619170251934.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjc4MDA1,size_16,color_FFFFFF,t_70) # 1. 损失函数与随机梯度下降基础 在机器学习中,损失函数和随机梯度下降(SGD)是核心概念,它们共同决定着模型的训练过程和效果。本

专栏目录

最低0.47元/天 解锁专栏
买1年送3月
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
C知道 免费提问 ( 生成式Al产品 )