iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >MySQL随机选取资源--优化
  • 252
分享到

MySQL随机选取资源--优化

2024-04-02 19:04:59 252人浏览 八月长安
摘要

接前文: Http://blog.itpub.net/29254281/viewspace-2120294/ 前文中,Order by rand()在数据量大的时候,会有一些性能问题. set

接前文:
Http://blog.itpub.net/29254281/viewspace-2120294/

前文中,Order by rand()在数据量大的时候,会有一些性能问题.

  1. set autocommit=false;  
  2. set @roomid:=-1;  
  3. select   
  4.     min(roomid) into @roomid  
  5. from  
  6.     room_info  
  7. where  
  8.     roomid >   
  9.     (  
  10.         select   
  11.             floor(max(roomid) * rand() + 1)  
  12.         from  
  13.             room_info  
  14.     )  
  15.     and state = 1;  
  16.   
  17. update room_info   
  18. set   
  19.     state = 2  
  20. where  
  21.     roomid =@roomid  
  22.     and state = 1;  
  23.         
  24. select @roomid;    
  25.   
  26. commit;  

优化的方式就是从最大的ID,随机选取一个值。
这样避免了排序.
但是应用程序还是需要判断,Update的影响行数是否为0.如果为0,则需要再次调用.

大招版本:
  1. set autocommit=false;    
  2. set @roomid:=-1;    
  3. select max(roomid) into @roomid from room_info;    
  4. set @roomid:=floor(rand()*@roomid+1);  
  5. update room_info     
  6. set     
  7.     state = 2    
  8. where    
  9. roomid =    
  10. coalesce    
  11. (    
  12.     (select roomid from (select min(roomid) roomid from room_info where state=1 and roomid > @roomid) a),    
  13.     (select roomid from (select max(roomid) roomid from room_info where state=1 and roomid < @roomid) b)    
  14. )    
  15. and state = 1 and @roomid:=roomid;    
  16.           
  17. select @roomid;      
  18.     
  19. commit;    

您可能感兴趣的文档:

--结束END--

本文标题: MySQL随机选取资源--优化

本文链接: https://www.lsjlt.com/news/47633.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL随机选取资源--优化
    接前文: http://blog.itpub.net/29254281/viewspace-2120294/ 前文中,Order by rand()在数据量大的时候,会有一些性能问题. set...
    99+
    2024-04-02
  • MySQL随机选取资源
    随机选取一个资源 模拟表如下: set autocommit=false;   update room_info set&n...
    99+
    2024-04-02
  • mysql-->随机取数
    该笔记记录缘由:客户要求分析21年3月每天用户消费的高峰时间点,每天随机取50条数据进行分析,总结出3种随机取数的方法,详情如下 方法一 1)使用rand()随机取数,适用于数据量少的情况,若查询表数量大会非常耗时(测试效果建下图一) --...
    99+
    2023-09-03
    mysql sql 数据库
  • 怎么进行Bitmap资源优化
    这篇文章将为大家详细讲解有关怎么进行Bitmap资源优化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 优化原因即 为什么要优化图片Bitmap资源,具体如下图: 优化方向本文将从 以下方面优化图片Bit...
    99+
    2023-06-04
  • 云资源规划与管理:轻松实现资源优化
    云资源规划与管理是一项复杂且涉及多个环节的系统性工程,需要企业系统规划、细致评估、科学决策、组织实施、及时监控和不断调整等多个步骤。 一、云资源规划 云资源规划是云资源管理的基础,需要企业对自身业务需求、IT架构、云服务商、成本预算等因素...
    99+
    2024-02-10
    云资源规划与管理 云计算 资源优化 成本控制
  • python3 list列表随机选取一个
    爬虫时适当更换user-agent可以稍微规避一下代理被封的风险。。。 from random import sample ua = [ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows ...
    99+
    2023-01-31
    列表 list
  • Vite图片资源打包优化的实现
    目录步骤1: 安装依赖步骤2: 配置Vite步骤3: 加载图片步骤4: 查看优化结果总结Vite是一种现代化的前端构建工具,它的打包速度非常快。在使用Vite进行开发的过程中,图片资...
    99+
    2023-05-15
    Vite图片资源打包优化 Vite图片打包优化 Vite打包优化
  • 如何进行C++代码的资源优化?
    如何进行C++代码的资源优化在计算机编程中,资源优化是一项非常重要的工作。资源的优化可以帮助我们提高程序的性能、减少内存占用以及节省宝贵的计算资源。在C++编程中,我们可以采取一些方法来进行代码的资源优化,本文将介绍一些常用的方法和技巧。一...
    99+
    2023-11-04
    内存管理(Memory Management)
  • MySQL中的随机抽取的实现
    目录1. 引言2. 内存临时表3. 磁盘临时表4. 优先队列排序算法1. 引言 现在有一个需求是从一个单词表中每次随机选取三个单词。 这个表的建表语句和如下所示: mysql> Create table 'word...
    99+
    2023-03-20
    MySQL 随机抽取
  • Vite图片资源打包优化怎么实现
    这篇文章主要讲解了“Vite图片资源打包优化怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vite图片资源打包优化怎么实现”吧!Vite是一种现代化的前端构建工具,它的打包速度非常快...
    99+
    2023-07-06
  • MySQL中的随机抽取如何实现
    今天小编给大家分享一下MySQL中的随机抽取如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 引言现在有一个需求是...
    99+
    2023-07-05
  • mysql如何随机获取几条数据
    mysql如何随机获取几条数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql随机获取几条数据的方法:1、通过“SELECT * FROM ta...
    99+
    2023-06-22
  • C#开发建议:性能优化与资源管理
    C#开发建议:性能优化与资源管理在C#开发中,性能优化和资源管理是至关重要的方面。良好的性能和资源管理可以提高应用程序的运行效率,减少资源浪费,提升用户体验。本文将针对C#开发中的性能优化和资源管理进行探讨和建议。使用合适的数据类型在C#开...
    99+
    2023-11-22
    优化 资源管理 C#性能
  • Linux下的Java编程:如何优化系统资源?
    Java是一种跨平台的编程语言,其在Linux系统下的应用越来越广泛。但是,由于Linux系统本身的特点,Java应用在Linux系统下的性能和资源利用率也需要特别注意。本文将介绍如何通过优化Java程序来提高Linux系统资源的利用率。...
    99+
    2023-08-27
    编程算法 自然语言处理 linux
  • .NET Core使用CZGL.SystemInfo库获取主机运行资源
    简介 CZGL.SystemInfo 是一个支持 Windows 和 Linux 的资源信息获取库,用于获取系统环境、机器资源信息、系统资源使用情况。 Nuget 搜索 C...
    99+
    2024-04-02
  • python怎么从列表中随机选取多个数
    您可以使用random模块的sample函数来从列表中随机选取多个数。以下是一个示例代码:```pythonimport rando...
    99+
    2023-09-04
    python
  • MySQL如何随机取数据最高效率
    小编给大家分享一下MySQL如何随机取数据最高效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 发现在SQL语句里有一个 O...
    99+
    2024-04-02
  • 如何在PHP项目中进行性能调优和资源优化?
    如何在PHP项目中进行性能调优和资源优化?随着互联网的高速发展,越来越多的应用程序采用了PHP作为开发语言。由于PHP的易用性和灵活性,许多开发人员选择使用它来构建自己的网站和应用程序。然而,由于PHP的动态特性和解释性质,一些开发人员可能...
    99+
    2023-11-03
    性能调优 PHP项目 资源优化
  • LeetCode算法如何优化容器的资源利用率?
    随着云计算的普及,容器技术成为了应用部署的重要手段。但是,容器的资源利用率一直是个难题。LeetCode算法提供了一些优化方法,可以帮助我们更好地利用容器资源。 一、使用滑动窗口算法 滑动窗口算法是一种常用的优化方法,可以在很短的时间内处...
    99+
    2023-06-13
    分布式 leetcode 容器
  • Java中快速排序的优化技巧:随机取样、三数取中和插入排序
    目录 快速排序基础 优化1:随机取样 优化2:三数取中 优化3:插入排序 总结: 快速排序(Quick Sort)是一种高效的排序算法,它的平均时间复杂度为O(n log n)。然而,在某些情况下,快速排序可能表现不佳,特别是在输入数据近...
    99+
    2023-09-14
    排序算法 数据结构 算法 java 后端
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作