mysql 批量更新数据的技巧_MySQL

php中文网
发布: 2016-06-01 13:30:30
原创
1094人浏览过

bitsCN.com

    当在开发的时候有时候需要手动修复数据或者更新数据,一般在自己的项目里写一个main函数对数据读取或者修改即可,但执行的时候要从本地连接外网,

如果数据量很大的时候。几十万或者上百万等以上的话,性能会非常的差,这时候把sql语句写好放在数据库里直接执行会好很多。

   在mysql数据库里的innodb引擎,一般数据增删改都有内置的事务的,而且有默认的超时限制,好像是50s,如果数据量大而且很多连接查询的话会超时, 

   这时候不妨把连接查询的数据创建临时表并对临时表创建索引,然后添加数据或修改数据对临时表进行连接关联,这时候性能会快很多,举个例子:

 DROP TEMPORARY TABLE IF EXISTS tmp;

v3.5.1Piwik网站访问统计系统
v3.5.1Piwik网站访问统计系统

Piwik是一套基于Php+MySQL技术构建的开源网站访问统计系统,前身是phpMyVisites。Piwik 网站统计系统可以给你详细的统计信息,比如网页 浏览人数, 访问最多的页面, 搜索引擎关键词等等,并且采用了大量的AJAX/Flash技术,使得在操作上更加便易。此外,它还采用了插件扩展及开放API架构,可以让开发人员根据 自已的实际需求创建更多的功能。

v3.5.1Piwik网站访问统计系统 97
查看详情 v3.5.1Piwik网站访问统计系统

 CREATE TEMPORARY TABLE tmp
    select b.UserId,b.field1,b.field2, b.field3 from
                    (select Max(AutoId) as AutoId
                    from T_Table2  where UserId
                    group by UserId) a left join T_Table1 b on a.AutoId=b.AutoId;
 ALTER TABLE tmp ADD INDEX `index_UserId` (`UserID` ASC) ;

  INSERT INTO T_Table3(`UserId`,`field1`,`field2`,`field3`, `CreateTime`,`CreateIp`,`ModifyTime`,`ModifyIp`)
    select a.UserId,a.field1,a.field2,a.field3,now(),'127.0.0.1',now(),'127.0.0.1'
    from tmp;

    临时表用完之后要删除,DROP TEMPORARY TABLE tmp;

bitsCN.com
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号