网站处理大批量数据添加与查询的优化方案

网站处理大批量数据添加与查询的优化方案,第1张

分析iis日志,解决掉5xx(服务代码错误),955(页面加载过慢)

引入分布式缓存

数据库读写分离

网站优化方案大方向都很固定,具体还是根据自己网站的实际情况。可以看看淘宝,京东出的技术书。里面有他们网站的架构,各种问题有对应的解决方案,可以借鉴。

可以的,这个有多种方法,建议你了解一下,储存过程,游标和触发器的知识,你就明白了。存储不一定是非要按JDBC一条条的执行SQL,可以定义一个存储过程来进行一连串的SQL *** 作。希望可以帮助到您。

以下纯属个人意见,请根据实际情况判断

(1)省下的数据量如果不大,那么可以考虑建立一张临时表,将需要保留的数据临时灌过去,然后truncate该表,然后再把数据灌回来。也可以考虑drop表,然后另外一张表改名,不过这样可能会有很多的后续 *** 作,比如索引的建立等等,因此一般不用drop *** 作。

(2)上亿的数据,应该有分区吧,如果可能的话,按照分区truncate,这样也可以。

(3)实在不能truncate,只能delete那么建议找个字段循环删除提交,每次不能太多,最好保持在5万以下(根据实际情况具体判断),毕竟delete是最消耗资源的dml语句。

(4)如果可能的话,不要同一时间 *** 作,分批 *** 作,这样能减少一部分数据库负载压力(特别是undo)。

(5)一定要闲时 *** 作,因为delete消耗资源比较多,会使数据库变慢。

在我们使用MySQL数据库时,比较常用也是查询,包括基本查询,关联查询,条件查询等等,对于同一个 *** 作,SQL语句的实现有很多种写法,但是不同的写法查询的性能可能会有很大的差异。这里主要介绍下select查询优化的要点。

1 使用慢查询日志去发现慢查询。

2 使用执行计划去判断查询是否正常运行。

3 总是去测试你的查询看看是否他们运行在最佳状态下 –久而久之性能总会变化。

4 避免在整个表上使用count(),它可能锁住整张表。

5 使查询保持一致以便后续相似的查询可以使用查询缓存。

6 在适当的情形下使用GROUP BY而不是DISTINCT。

7 在WHERE, GROUP BY和ORDER BY子句中使用有索引的列。

8 保持索引简单,不在多个索引中包含同一个列。

9 有时候MySQL会使用错误的索引,对于这种情况使用USE INDEX。

10 检查使用SQL_MODE=STRICT的问题。

11对于记录数小于5的索引字段,在UNION的时候使用LIMIT不是是用OR

12 为了 避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去实现。

3 不要使用 MAX,使用索引字段和ORDER BY子句。

14 避免使用ORDER BY RAND()

15 LIMIT M,N实际上可以减缓查询在某些情况下,有节制地使用。

16 在WHERE子句中使用UNION代替子查询。

17 对于UPDATES(更新),使用 SHARE MODE(共享模式),以防止独占锁。

18 在重新启动的MySQL,记得来温暖你的数据库,以确保您的数据在内存和查询速度快。

19 使用DROP TABLE,CREATE TABLE DELETE FROM从表中删除所有数据。

20 最小化的数据在查询你需要的数据,使用消耗大量的时间。

21 考虑持久连接,而不是多个连接,以减少开销。

22 基准查询,包括使用服务器上的负载,有时一个简单的查询可以影响其他查询。

23 当负载增加您的服务器上,使用SHOW PROCESSLIST查看慢的和有问题的查询。

24 在开发环境中产生的镜像数据中 测试的所有可疑的查询。

来源:PHP程序员雷雪松的博客

使用merge语句吧

语法:

MERGE INTO 目标表 AS A

USING 源表 AS B

ON (ACOL = BCOL) --匹配条件

WHEN MATCHED THEN --当匹配上就用B表的字段更新A表的字段

UPDATE SET

ACOL1 = BCOL1,

ACOLn = BCOLn

WHEN NOT MATCHED THEN INSERT(ACOL1,,ACOLn) --下面这句是不匹配就插入数据

VALUES (BCOL1,,BCOLn);

以上就是关于网站处理大批量数据添加与查询的优化方案全部的内容,包括:网站处理大批量数据添加与查询的优化方案、数据库中修改数据可以一次性修改多张表的吗、oracle上亿表海量数据进行大批量数据删除有什么好的解决方案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10178219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存