2
回答
一个MYSQL语句优化的问题
【腾讯云】学生服务器套餐10元/月 >>>   

SQL:

select id from ‘table’ where 1=1 order by RAND() limit 3

说明:

id为varchar类型,由于MySQL的RAND函数性能较低,数据量大的情况下比较消耗性能,希望有MySQL方面的专家和大牛们给点建议!!

举报
共有2个答案 最后回答: 1年前

    
    public static List<Integer> getRandomNum0(int smallistNum, int BiggestNum) {
        Random random = new Random();
        List<Integer> re = new ArrayList<Integer>();
        while(re.size() < 3){
            Integer  a = (Math.abs(random.nextInt()) % (BiggestNum - smallistNum + 1)) + smallistNum;
            if(!re.contains(a)){
                re.add(a);
            }
        }
        return re;
    }
(SELECT
  `key`,
  `value`,
  `description`,
  `createTime`
FROM `shishuocms`.`config`
LIMIT 【随机整数】, 1)
UNION
(SELECT
  `key`,
  `value`,
  `description`,
  `createTime`
FROM `shishuocms`.`config`
LIMIT 【随机整数】, 1)
UNION
(SELECT
  `key`,
  `value`,
  `description`,
  `createTime`
FROM `shishuocms`.`config`
LIMIT 【随机整数】, 1)

--- 共有 1 条评论 ---
淡定的米哥1.先获取三个随机数;2.分别利用三个随机数分别三次查询再合并; 略显复杂,也是一种思路。 1年前 回复
顶部