扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在 Java 中,循环删除 MySQL 数据时,可能会出现删除操作变慢的情况。这通常是由于循环过程中频繁地创建和销毁数据库连接对象导致的。
成都创新互联主要从事成都网站制作、做网站、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务慈溪,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
删除数据很慢。实在没有办法的话,你可以把删除命令写成sql,然后用数据库命令行工具进行删除,要快速很多倍。比如mysql,用它的命令行比自己删除要快,比批量commit还要快很多。添加数据与删除数据都可以这么做。
条数据就这么慢,还有别人对其做dml操作。 很可能是锁表了。
请确保这行是不是数字类型,因为数据类型比字符类型查询速度更快,最好将这一行设置一个固定长度,这样查询速度更快,如果这个行数据长度能短一点更好,越短就意味着查询速度越快。
如慢尝试更换网线。网络连接速度正常,则尝试更换调用的驱动包,重新下一个或换一个版本。mysql支持几十万的数据,响应速度应该是毫秒级的。看了下你的语句,不要用IN了,改INNER JOIN吧,套那么多层IN,肯定没效率。
先安装 Apache Spark,查询数据库的速度可以提升10倍。在已有的 MySQL 服务器之上使用 Apache Spark (无需将数据导出到 Spark 或者 Hadoop 平台上),这样至少可以提升 10 倍的查询性能。
tel 字段简历索引了吗?给你个建议,可能你更新的字段都是索引字段,建议先把索引都删掉,更新完数据之后在建立对应的索引。
这个主键ID其实已经是有建立了索引的了,而在IN查询当中并没有用到而已,其实你可以试试IN里的id少些时,是会用到索引的,但当IN里的id占据全表的大部分数据量时,mysql采用的时全表扫描。
\ 对于 information_schema 中的元数据表,执行计划不能提供有效信息。\ 通过查看 MySQL 改写后的 SQL,我们猜测了优化器发生了误判。\ 我们增加了 hint,指导 MySQL 正确进行优化判断。
同事使用delete循环删除过一次,时间久不说,表中的数据是删除了,但是查看服务器发现,*.idb文件大小居高不下,使用optimize table 表名 , 优化表以后,内存大小恢复正常。前前后后花费将近4个小时的时间。
1、是不是数据量过大,导致delete速度慢。
2、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。
3、两种情况:删除没有被正确执行。删除的速度低于增加的速度。检查mssql的错误日志,是否delete临时表的语句执行失败了,比如表在被插入时锁表,而锁住了删除操作。
4、比先删除在插入速率会快些(需要两次磁盘操作)。最后:速度的快慢取决于你的操作对索引的影响,先删除在增加理论上会增加索引碎片。如果你是更新操作的话直接更新索引字段的话,也会导致索引重新排序。大概就是这样吧。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流