首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过openpyxl的delete_rows删除了1000多行,但结果表的话这些序号并没有缩减?(文末赠书)

    各位大佬想请教下:原来我的表格序号为2800多行,通过openpyxl的delete_rows 删除了1000多行,但结果表的话这些序号并没有缩减 导致显出一大片的空白行,请问这个有什么方法可以处理吗?...worksheet = workbook['Sheet1'] # 替换'Sheet1'为实际的工作表名称 # 删除单个行号为5的行,连同格式一起删除 worksheet.delete_rows(5)...# 删除行号从3到7的行(包括行号3和7),连同格式一起删除 worksheet.delete_rows(3, 7) # 保存更新后的Excel文件 workbook.save('222.xlsx...') 代码运行之后,测试无误,后来【东哥】也测试了下,也没有发现问题。...这篇文章主要盘点了一个Python自动化办公Excel列删除处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    31820

    订单数据越来越多,如何优化数据库性能?

    这样拆分好处,拆分订单时,要改动的代码少。大部分对订单表的操作都是在订单完成前,这些业务逻辑完全不用修改。...迁移这么大量的数据,或多或少都会影响数据库的性能,你应该尽量放在闲时去迁移,迁移之前一定做好备份,这样如果不小心误操作了,也能用备份来恢复。 批量删除大量数据 如何从订单表删除已迁走的历史订单数据?...大量的历史订单数据删除完成后,若检查MySQL占用磁盘空间,会发现它占用磁盘空间并没有变小,why?和InnoDB物理存储结构有关。...数据和索引虽然在物理上没有删除,但逻辑上已经删除掉了,执行查询操作的时候,并不会去访问这些已经删除的数据。 比如,原来有100条数据,删除完成后剩了10条。...归档历史数据一般可以根据日前时间分类新建表 删除历史数据要注意分批删除,还有就是删除数据但是磁盘空间并没有释放,可以执行optimism table 进行磁盘空间释放执行过程会锁表 还有一种方案就新建一张表迁移所需数据到新的表

    1.2K30

    聊一聊项目中的软删除

    ,你没法再通过select语句查出来,而这个做法,就叫硬删除 回到刚刚那个的逻辑,假设有一个商品表,订单表,订单表关联了商品id 这个时候,需要删除这个商品,如果直接数据库删除的话,将导致订单表查不出商品信息...,这个时候 我们可以给商品表增加一个 删除标记 isDelete  删除商品数据时,不去执行delete,而是去执行update: update goods_list set isDelete=1 where...所有表都可以加软删除,但是有些表增加软删除并没有意义 只有一些重要数据表,关联表相关才有必要增加软删除功能 例如在商城项目中, 刚刚所说的商品删除,需要拥有关联订单表 用户端删除订单之后,为了做用户数画像...,可以做成软删除方便分析数据 用户修改头像之后,也可以保留旧头像做数据分析 日志过期删除之后,没有查看的意义 商城首页的菜单栏删除了,没有恢复的意义 商品分类删除了,完全可以重新增加一个一模一样的,没有恢复的意义...例如刚刚的订单表商品关联的 如果要业务实现完善,理应做订单商品快照,也就是每次下单,都会将商品表的商品数据全部复制一份,关联上订单 这样商品数据真删除了,或者商品修改了信息,订单表也能看到那时候下单时的商品数据

    1.6K31

    SQL中MERGE的用法

    MERGE的定义 MERGE关键字是一个神奇的DML关键字,它能将INSERT,UPDATE,DELETE等操作并为一句,根据与源表联接的结果,对目标表执行插入、更新或删除操作。...MERGE的用法 merge无法多次更新同一行,也无法更新和删除同一行 当源表和目标表不匹配时: 若数据是源表有目标表没有,则进行插入操作; 若数据是源表没有而目标表有,则进行更新或者删除数据操作 当源表和目标表匹配时...数据如下: Customers Orders Q:当Customers表里的客户有购买商品,我们就更新一下他们的下单时间,将他们的下单时间往后推迟一小时,如果客户没有购买商品,那么我们就将这些客户的信息插入到订单表里...确定关联条件 C.客户ID=O.客户ID WHEN MATCHED --当匹配时对目标表的订单日期执行更新操作 THEN UPDATE SET O.订单日期=DATEADD(HOUR,1,O.订单日期...NULL,NULL) ; (提示:代码可以左右滑动) 我们看一下Orders表里的结果: 我们发现与Customers表里匹配上的订单日期被修改了,订单日期往后推迟了一小时,而没有匹配上的在订单表尾部增加了几行记录

    13910

    接口幂等性的解决方案

    因为删除操作通常是定向的,比如通过id去删除数据,如果该id在数据库中存在对应记录,则删除该记录;如果该id在数据库中不存在对应记录,也是执行的删除记录操作,只是没有实质性地删除到记录而已,却也不会有其他的副作用...比如有一个特殊订单表,这个特殊订单表关联了一个用户表,业务设置是每一个用户只能创建一个特殊订单,也就意味着在这个特殊订单表中只能有一条用户关联的记录。...那么这时候就可以在这个特殊订单表上针对这个用户关联的字段做一个唯一索引,通过数据库的唯一约束来限制往特殊订单表中插入多条一个用户关联的记录。...这样,当第二次请求往特殊订单表中插入一个用户关联的特殊订单记录的时候,数据库就会报错并回滚插入操作,也就保证了幂等。 4.Token校验机制:操作前先校验Token,以防止页面重复提交。...总之幂等性应该是合格程序员的一个基因,在设计系统时,是首要考虑的问题,尤其是在像支付宝,银行或互联网金融公司等涉及的都是金钱钱的系统,既要高效,也要保证数据准确,不能出现多扣款,多打款等问题,这样会很难处理

    64220

    你知道微服务架构中的“发件箱模式”吗

    欢迎关注个人公众号『JAVA旭阳』交流沟通 下订单的例子假设我们有一个 OrderService 类,它在创建新订单时被调用,此时它应该将订单实体保存在数据库中并向交付微服务发送一个事件,以便交付部门可以开始计划交付...有没有更好的方法呢?我们可以订单表所在的同一数据库中有一个表“发件箱”(在最简单的情况下,它可以有一个列“消息”和当前时间戳)。保存订单时,在同一个事务中,我们在“发件箱”表中保存了一条消息。...如果消息成功发送到消息队列,但发件箱实体没有从数据库中删除(例如因为数据库问题),那么下次该后台任务将尝试再次将此消息发送到消息队列。...在数据库里面额外增加一个outbox表用于存储需要发送的event把直接发送event的步骤换成先把event存储到数据库outbox表程序启动一个 job 不断去抓取 outbox 表里面的记录,通过推送线程完成不同业务的推送最后删除发送成功的记录提醒消息消费端要做好幂等处理总结发件箱模式虽然听上去可能很简单...这样做的好处就是,寄信人写好信之后,就不需要等待收信人有空的时候才能寄信,只需要往发件箱里丢就好了。

    27720

    【愚公系列】2022年01月 Mysql数据库-约束

    这样就大幅度地提高了数据库中数据的质量,节省了数据库的空间和调用数据的时间。...,但是没有所属用户。...(uid) REFERENCES USER(id); 7.外键的级联更新和级联删除 什么是级联更新和级联删除 当我想把user用户表中的某个用户删掉,我希望该用户所有的订单也随之被删除 当我想把...user用户表中的某个用户id修改,我希望订单表中该用户所属的订单用户编号也随之修改 添加级联更新和级联删除 -- 添加外键约束,同时添加级联更新 标准语法 ALTER TABLE 表名 ADD CONSTRAINT...修改为5 订单表中的uid也随之被修改 UPDATE USER SET id=5 WHERE id=3; -- 将王五用户删除 订单表中该用户所有订单也随之删除 DELETE FROM

    55810

    单台 MySQL 支撑不了这么多的并发请求,我们该怎么办?

    有些是全局性的,如“修改一件商品信息,所有用户看到的是一份数据”;有些是局部性,如“用户小张刚下了一笔订单,查订单列表时,要带出最新的这条订单信息”。 全局性的读多写少,我们可以引入缓存。...早年像淘宝、京东大型电商网站查看自己的订单时,都有一个”三个月前订单“选项,其实就是查的订单历史表。...清理过程中需要对原表的数据删除,但是删除了大量的数据后,如果你检查一下 MySQL 占用的磁盘空间,你会发现它占用的磁盘空间并没有变小,这是什么原因呢?其实和 InnoDB 的物理存储结构有关系。...重建表的过程中,索引也会重建,这样表数据和索引数据都会更紧凑,不仅占用磁盘空间更小,查询效率也会有提升。 4、分库分表 数据库的性能取决于两个因素:查找的时间复杂度、数据量大小。...分库分表的核心特点: 每个分表的结构都一样 每个分表的数据都不一样,没有交集 所有分表的并集是全量数据 分库分表可以解决两个问题: 分片查询,减少了查询的数据量。

    2.3K20

    给女同事讲解MySQL数据库设计范式与反范式,她夸我“技术好”

    3.2 解决方案 将不与PK形成依赖关系的字段直接提出单独成表即可: 4 三范式评价 优点 范式化的更新通常比反范式快 当数据较好的范式化后,很少或者没有冗余数据 范式化的数据比较小,放在内存中操作较快...这避免了完全反范式化的插入和删除问题,因为即使没有消息的时候也不会丢失用户信息。...这样也不会把user_message表搞得太大,有助高效获取数据 另一个从父表冗余些数据到子表的理由是排序的需要 缓存衍生值也是有用的。...如果需要显示每个用户发了多少消息(类似论坛),可以每次执行一个昂贵的子查询来计算并显示它;也可以在user表中建个num_messages列,每当用户发新消息时更新这个值。...、名称、描述、过期时间 SELECT a.用户名,a.电话.a.地址 ,a.订单ID ,a.订单价格 FROM `订单表` a 1234 把用户表的地址加到了订单表,这样查询地址时,就不需要把用户表和订单表关联

    61442

    云数据库函数指南:小白到大神的转变秘诀!

    假设要获得最新已完成的订单,可以这样使用: finished_time表示订单完成时间,-1表示降序。...getMyLastOne函数是getOne的一个封装,用于获取当前用户在指定集合中最新创建的文档: 如果用户订单表中有index字段,你可以这样获取当前用户的最新订单: 此函数会自动过滤掉其他用户的数据...若想把所有“未完成”订单的状态都改为“已完成”,可以这样使用: 只是删除某个字段,例如删除订单的重量字段weight,可以这样使用: 上面代码中的第二个参数表示仅修改有weight字段的数据,这是可选的...如要删除数据库中的a.b.c字段: 3. setDoc函数 updateDoc函数只会更新在第三个参数d中所指定的属性,对于没有明确指定的属性,updateDoc不会做任何更改。...例如删除当前用户所有已完成的todo: 2. removeAll函数 开发阶段需要清空某个表中的所有数据时,可使用removeAll函数,只需要输入集合名称即可。

    15910

    接口幂等性

    危险性: 1、先删除 token 还是后删除 token; (1) 先删除可能导致,业务确实没有执行,重试还带上之前 token,由于防重设计导致, 请求还是不能执行。...我们梳理下,我们第一次操作库存时,得到 version 为 1,调用库存服务 version 变成了 2;但返回给订单服务出现了问题,订单服务又一次发起调用库存服务,当订单服务传如的 version 还是...这个机制是利用了数据库的主键唯一约束的特性,解决了在 insert 场景时幂等问题。但主键 的要求不是自增的主键,这样就需要业务生成全局唯一的主键。...4、防重表 使用订单号 orderNo 做为去重表的唯一索引,把唯一索引插入去重表,再进行业务操作,且他们在同一个事务中。这个保证了重复请求时,因为去重表有唯一约束,导致请求失败,避免了幂等问题。...这里要注意的是,去重表和业务表应该在同一库中,这样就保证了在同一个事务,即使业务操作失败了,也会把去重表的数据回滚。这个很好的保证了数据一致性。

    25130

    MySQL 高级 | 用存储过程、定时器、触发器来解决数据分析问题

    应用场景①:当向一张表中添加或删除数据时,需要在相关表中进行同步操作,比如:当一个订单产生时,订单所购的产品的库存量相应减少。...应用场景②:当表中某列数据的值与其他表中的数据有联系时,比如:某客户进行欠款消费,可以在生成订单时,设计触发器判断该用户的累计欠款是否超过最大限度。...应用场景③:跟踪某张表时,比如当有新订单产生时,需通知相关人员进行处理,这时可以在订单表中添加触发器加以实现。...; end 查看 Show triggers; 删除 Drop trigger 数据库.触发器名称; 要求:现有商品表 goods,订单表 orders,当下一个订单时,商品要相应减少(买几个商品...注意: 引用行变量 要求:删除一个订单时,商品要退回,库存量要还原(删) 要求:订单表中的数量3 要求改到2,并且让商品表的库存量也变化(改) 要求:假如现在剩余 26 只pig,但是客户下订单买

    1.9K20

    MySQL 的约束和索引专题

    ❑ 包含主键值的列从不修改或更新。(大多数 DBMS 不允许这么做,但如果你使用的 DBMS 允许这样做,好吧,千万别!) ❑ 主键值不能重用。如果从表中删除某一行,其主键值不分配给新行。...在定义外键后,DBMS 不允许删除在另一个表中具有关联行的行。例如,不能删除关联订单的顾客。删除该顾客的唯一方法是首先删除相关的订单(这表示还要删除相关的订单项)。...例如,举例如果启用级联删除并且从客户表中删除某个顾客,则任何关联的订单行也会被自动删除。 唯一约束 唯一约束用来保证一列(或一组列)中的数据是唯一的。它们类似于主键,但存在以下重要区别。...❑ 索引改善检索操作的性能,但降低了数据插入、修改和删除的性能。在执行这些操作时,DBMS 必须动态地更新索引。 ❑ 索引数据可能要占用大量的存储空间。 ❑ 并非所有数据都适合做索引。...这样的索引仅在以州加城市的顺序排序时有用。如果想按城市排序,则这种索引没有用处。 提示:检查索引索引的效率随表数据的增加或改变而变化。

    1.6K30

    数据库范式

    最近在开发新系统,理解业务,开始设计数据表结构; 寻找实体,确定实体间的关系及关系属性 梳理业务功能接口逻辑,其实也就是这个功能操作了哪张表的哪个字段 没有传说中的面向对象分析,DDD实践,流行的微服务玩法...也许,好久没有从零开发系统,很久没有亲手新建数据库表 沉默十秒钟,感觉像回到了学校,做个类似留言板,BBS类的学生系统;不是鄙视学生时代,而是有些恍惚 多年的工作经验,恍如做了个梦,现在设计的表结构与一名实习生有什么区别呢...”可以决定金额,但对接人邮箱只依赖于“平台” 不满足第二范式: 数据冗余:每条记录都含有相同数据 删除异常:比如删除所有VIP平台信息,那平台的对接人邮箱也被删除了 插入异常:没有订单,无法插入一个平台的对接人...更新异常:调整平台对接人,需要更新平台全部记录 经常在建表时,会有一个毫无业务意义的自增字段作为主键,这样就保证了第二范式,因为主键只有一个属性,不存在真子集。...(id, description), studentclass(studentid, class_id) 三张表,这样是符合数据库范式的(第一范式,第二范式,第三范式,BC范式等),没有任何冗余 如果需要列出学生的

    38830

    分库分表—4.数据迁移系统文档一

    这样在下⼀轮查询时,查询参数中的最⼩订单号会从RangeScroll类中获取,从而实现滚动查询。举个例⼦:有四条订单数据,对应四个订单号:1001、1002、1003、1004。...有了以上数据统计后,在迁移明细表中的每条记录中,同步完⼀批数据都会记录⽬前已迁移完多少数据。这样就可⽤已同步完毕的数据量,除以订单数据统计记录的订单总数据量,结果就是迁移进度。...问题一:数据迁移系统消费MQ消息时,如何保证从MQ获取到的binlog消息不会丢失如果源数据库增删改操作了,但由于消费异常导致binlog消息丢失了,那么目标数据库中就没有对应的增量数据操作,这样源数据库和目标数据库的数据就会不...如果当前的binlog⽇志的操作类型为删除操作,则可不⽤对⽐更新时间,直接在目标库中重做这条binlog⽇志,毕竟源数据库在删除⼀条数据时不会更新修改时间。...如果源数据库的⼀条binlog⽇志对应的数据在目标库中没有查到,那么继续判断。如果binlog⽇志是删除操作,那就没必要在目标库中重做这条⽇志了,直接过滤掉。目标库都没有数据了,就没必要执⾏删除操作。

    3700
    领券