当前位置: 首页 > news >正文

安装网站提示dir有做网站赚钱的吗

安装网站提示dir,有做网站赚钱的吗,找人开发软件去什么网站,中级经济师考试科目目录 一、问题分析 二、批量删除海量数据的几种方法 方法 1#xff1a;使用 LIMIT 分批删除 方法 2#xff1a;通过主键范围分批删除 方法 3#xff1a;通过自定义批量删除存储过程 方法 4#xff1a;创建临时表替换旧表 三、性能优化建议 总结 在数据库的日常维护…目录 一、问题分析 二、批量删除海量数据的几种方法 方法 1使用 LIMIT 分批删除 方法 2通过主键范围分批删除 方法 3通过自定义批量删除存储过程 方法 4创建临时表替换旧表 三、性能优化建议 总结 在数据库的日常维护中我们经常遇到需要删除大量数据的场景。例如删除过期日志、清理历史数据等。但如果一次性删除大量数据可能会导致锁表、事务日志暴增、影响数据库性能等问题。本文将介绍几种高效批量删除 MySQL 海量数据的方法。 一、问题分析 一次性删除大量数据的主要问题在于 长时间锁表大量删除操作会导致数据库长时间加锁影响其他事务的正常操作。事务日志暴增MySQL 在删除数据时会记录事务日志大量删除操作可能导致日志文件过大甚至撑满磁盘。影响性能一次性删除大量数据会占用大量的 CPU 和 IO 资源对数据库整体性能产生严重影响。 为避免这些问题可以考虑分批删除等策略来减少对数据库的压力。 二、批量删除海量数据的几种方法 方法 1使用 LIMIT 分批删除 LIMIT 分批删除是一种常用的处理海量数据的方式。每次删除固定数量的数据循环执行直至删除完毕。 示例 SQL 假设我们要删除 logs 表中创建时间在某个日期之前的所有数据 -- 设置每批删除的行数 SET BATCH_SIZE 1000;-- 分批删除符合条件的数据 DELETE FROM logs WHERE create_time 2023-01-01 LIMIT BATCH_SIZE; 可以将上述语句放入存储过程或在应用层循环调用。每次删除 BATCH_SIZE 行数据减少锁表时间和日志生成量。 优点 控制单次删除的量减少锁表时间和日志生成量。 缺点 需要循环多次操作逻辑稍复杂。 注意 分批删除的 LIMIT 值可以根据实际环境调整。通常 500 到 5000 是较合理的选择。 方法 2通过主键范围分批删除 如果要删除的数据在主键上是连续的如自增 ID可以按主键范围分批删除。这样能够避免 LIMIT 的偏移开销提高删除效率。 示例 SQL 假设 logs 表的主键是 id -- 设置每批删除的范围 SET start_id 0; SET end_id 1000;WHILE (start_id (SELECT MAX(id) FROM logs WHERE create_time 2023-01-01)) DODELETE FROM logsWHERE id BETWEEN start_id AND end_idAND create_time 2023-01-01;-- 更新删除范围SET start_id end_id 1;SET end_id end_id 1000; END WHILE;优点 主键范围分批避免了 LIMIT 偏移带来的开销。 缺点 需要知道主键范围且适用于有连续主键的数据表。 方法 3通过自定义批量删除存储过程 可以将批量删除逻辑封装成存储过程利用存储过程自动控制批量删除过程。 示例 SQL DELIMITER $$CREATE PROCEDURE batch_delete_logs() BEGINDECLARE done INT DEFAULT FALSE;DECLARE batch_size INT DEFAULT 1000;WHILE NOT done DODELETE FROM logs WHERE create_time 2023-01-01 LIMIT batch_size;-- 检查是否还有剩余数据IF ROW_COUNT() batch_size THENSET done TRUE;END IF;END WHILE; END $$DELIMITER ;执行存储过程 CALL batch_delete_logs(); 优点 存储过程实现自动化逻辑清晰避免多次手动执行 SQL。 缺点 适用于支持存储过程的场景对小批量删除非常适合。 方法 4创建临时表替换旧表 在某些情况下删除大表中的大量数据可以通过创建新表的方法完成。即先将需要保留的数据转移到新表再删除旧表。这种方法可以减少锁表时间和日志开销。 步骤 创建一个新表结构与旧表相同。将需要保留的数据插入新表。删除旧表重命名新表为原表名。 示例 SQL -- 创建新表 CREATE TABLE logs_new LIKE logs;-- 插入需要保留的数据 INSERT INTO logs_new SELECT * FROM logs WHERE create_time 2023-01-01;-- 删除旧表并重命名新表 DROP TABLE logs; RENAME TABLE logs_new TO logs; 优点 避免了大规模的删除操作减少了锁表时间和日志。 缺点 需要额外的磁盘空间来存放新表数据。在业务量大的情况下可能需要进行额外的锁机制控制。 三、性能优化建议 避免在业务高峰期进行大规模删除可以选择在夜间等业务低峰期执行。适当设置批量大小。批量删除时LIMIT 的大小需要根据实际情况调整不宜过大防止长时间锁表。关闭不必要的日志。在某些极端情况下可以关闭 MySQL 的二进制日志binlog来减少日志开销但此操作有风险应在充分了解后谨慎使用。 总结 方法适用场景优点缺点LIMIT 分批删除需要简单分批删除逻辑简单减少锁表时间需循环操作主键范围分批删除有连续主键的表高效无偏移开销需手动指定范围自定义批量删除存储过程小批量删除自动化操作需要数据库支持存储过程临时表替换删除数据量非常大避免锁表减少日志开销需要额外磁盘空间 根据不同的业务场景和需求选择合适的批量删除方式可以提高 MySQL 的删除效率减少对数据库的影响。希望本文对大家在 MySQL 的数据清理和维护上有所帮助
http://www.w-s-a.com/news/648183/

相关文章:

  • 成都哪家做网站建设比较好做推广赚钱的网站
  • 常州专门做网站的公司有哪些网页模板下载网站10
  • linx服务器怎么做网站做长页网站
  • 汕头网站建设sagevis服装设计公司有什么职位
  • 网站流量分析报告医院网站制作公司
  • 仿58网站怎么做邯郸网站设计多少钱
  • 广州网站制作开发wordpress中文固定连接
  • 成都网站建设公司盈利吗专门做二手手机的网站有哪些
  • 手机网站设计需要学什么wordpress读法
  • WordPress pajx天津短视频seo
  • 检察院门户网站建设情况总结深圳网站制作长沙
  • 单页导航网站模板搜索量查询
  • 如何在一个地方建设网站营销型定制网站
  • 保定网站建设方案维护动易网站中添加邮箱
  • 简易网站的html代码wordpress音乐html
  • 四川住房和城乡建设厅网站打不开海山网站建设
  • 深圳设计功能网站如何用html制作网站
  • 网络优化软件下载竞价排名和seo的区别
  • 龙华新区做网站中高端网站建设
  • 网站开发小图标大全手机网站设计开发
  • 网页设计设计一个网站口碑营销的优点
  • 枣庄建网站的公司唐山企业网络推广培训
  • 张家界建设企业网站学校资源网站建设方案
  • 网站制作教程书籍业务管理系统
  • 上传网站空间的建站程序怎么删除c 网站开发案例详解下载
  • 企业网站维护兼职丹阳网站优化
  • 秦皇岛网站开发公司怎么注册自己的公司
  • 写作网站哪个能得稿费绿色环保企业网站模板
  • 牡丹江网站建设定制开发安徽建设工程信息网官网入口
  • 有什么好的网站建设的书适合在家做的网站工作