巧用rand()提取随机行:

mysql中rand()获取0-1之间的一个随机数.这个函数和order by能把数据随机排序。

随机从表中取出十条数据:

select * from tablename order by rand() limit 10;

此方法确实很方便,但是效率上却慢的惊人,切勿使用。

SELECT * FROM `table`WHERE id>= ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) * RAND() + (SELECT MIN(id) FROM `table`) LIMIT 10

这条语句看上去有点复杂,但实际的运行效率想到的高,而且能保证10条记录都是随机。测试了下,用时0.048s,相当给力。

利用GROUP BY的WITH ROLLUP

使用group by的with rollup子句可以检索出更多的分组聚合信息。

mysql> select * from demo;+-------+-------+| cname | pname|+-------+-------+| bj    | hd   || bj    | hd   || bj    | xc   || bj    | xc   || bj    | hd   || sh    | dh   || sh    | dh   || sh    | rg   || sh    | dh   |+-------+-------+9 rows in set (0.00 sec)

对demo表按照cname、pname列分组对pname列进行聚合计算如下

mysql> select cname,pname,count(pname) from demo groupby cname,pname;

+-------+-------+--------------+

| cname | pname | count(pname) |

+-------+-------+--------------+

| bj   | hd    |            3 |

| bj   | xc    |            2 |

| sh   | dh    |            3 |

| sh   | rg    |            1 |

+-------+-------+--------------+

4 rows in set (0.00 sec)

同样使用with rollup关键字后,统计出更多的信息,如下。

注意: with rollup不可以和ordery by同时使用

mysql> select cname,pname,count(pname) from demo groupby cname,pname with rollup;

+-------+-------+--------------+

| cname | pname | count(pname) |

+-------+-------+--------------+

| bj   | hd    |            3 |

| bj   | xc    |            2 |

| bj   | NULL  |            5 |

| sh   | dh    |            3 |

| sh   | rg    |            1 |

| sh   | NULL  |            4 |

| NULL  | NULL  |           9 |

+-------+-------+--------------+

7 rows in set (0.00 sec)

mysql help使用:?  % \G

1.mysql使用时如果记不住命令可用?获得帮助。通常是 ? create  /   ? alter  这样使用

2.当太长的命令记不住可以 ? reg%获得了regexp的使用方法。? opti%获得了optimize的使用方法。

3.\G 会格式化输出sql结果。使用\G不用加;。

mysql 优化rand_mysql优化--巧用rand(),with rollup,help__update2014.1.13相关推荐

  1. mysql数据库管理维护_深入浅出MySQL 数据库开发 优化与管理维护 第3版

    资料目录: 第 一部分 基础篇 第 1章 MySQL的安装与配置 2 1.1 MySQL的下载 2 1.1.1 在Windows平台下下载MySQL 3 1.1.2 在Linux平台下下载MySQL ...

  2. mysql sql优化_浅谈mysql中sql优化

    说到sql优化,一般有几个步骤呢,在网上看到了一篇很不错的帖子.在这分享一下吧,也是自己学习的一个过程. 一.查找慢查询 1.1.查看SQL执行频率 SHOW STATUS LIKE 'Com_%'; ...

  3. Mysql 架构及优化之-索引优化

    索引基础知识 索引帮助mysql高效获取数据的数据结构 索引(mysql中叫"键(key)") 数据越大越重要 索引好比一本书,为了找到书中特定的话题,查看目录,获得页码 sele ...

  4. MySQL 调优/优化的 101 个建议!

    转载自 MySQL 调优/优化的 101 个建议! MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适 ...

  5. 庖丁解牛|图解 MySQL 8.0 优化器查询转换篇

    简介: 本篇介绍子查询.分析表和JOIN的复杂转换过程 一  背景和架构 在<庖丁解牛-图解MySQL 8.0优化器查询解析篇>一文中我们重点介绍了MySQL最新版本8.0.25关于SQL ...

  6. mysql入门优化_MySQL数据库:MySQL十大优化技巧详解

    本文主要向大家介绍了MySQL数据库的MySQL十大优化技巧详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是 ...

  7. Mysql之索引优化案例

    Mysql之索引优化案例 1.单表简单案例 1.1创建表 1.2 问题: 1.3 解决:新建索引 1.4 再次执行 2.双表简单案例 2.1创建表并插入数据 2.2 由于是LEFT JOIN,所以左表 ...

  8. MySQL高级-MySQL查询缓存优化

    MySQL查询缓存优化 1 概述 2 操作流程 3 查询缓存配置 4 开启查询缓存 5 查询缓存SELECT选项 6 查询缓存失效的情况 1 概述 开启Mysql的查询缓存,当执行完全相同的SQL语句 ...

  9. 101个MySQL调试和优化技巧

    101个MySQL调试和优化技巧 MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化 MySQL安装的技巧.一些 ...

最新文章

  1. BZOJ4568: [Scoi2016]幸运数字(线性基 倍增)
  2. ATO/MTO类机械制造业特点以及ERP需求分析(三)
  3. python创建一个类似于国家象棋棋盘的0-1矩阵_NumPy练习题(全中文并附详细讲解)...
  4. boost::ratio_not_equal相关的测试程序
  5. 红队中易被攻击的一些重点系统漏洞整理
  6. Scala match
  7. lstm 做多分类loss完全不下降_使用Induction Network做Few-Shot Text分类
  8. ImageRanger 全萤幕检视操作说明
  9. python折线图实线虚线_python – matplotlib中的虚线而不是缺失值
  10. 利用OA系统更便捷地查询员工工资
  11. 国外优秀的屏幕录象专家
  12. 200行代码让你找回童年的记忆,C + EasyX实现《拼图》小游戏!
  13. qq 客服 php,QQ支持临时会话设置
  14. C# Socket实现两台电脑通信(三)
  15. u盘中毒文件为html文档,u盘中毒文件被隐藏了?教你如何快速恢复隐藏文件
  16. JS 【详解】作用域
  17. libssl-dev : 依赖: libssl1.0.0 (= 1.0.2g-1ubuntu4.13) 但是 1.0.2n-1ubuntu5.1 正要被安装
  18. python获取文件夹名称、文件名、去除后缀的文件名、文件改名等
  19. python自动识别简单图片中的文字
  20. 什么是整洁代码?大咖程序员们这样说

热门文章

  1. java反编译工具_Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)...
  2. 【OpenCV 例程200篇】01. 图像的读取(cv2.imread)
  3. win10-PC端无法输入中文
  4. 【Python】提升Python程序性能的好习惯
  5. 【Python】对象、类、元类
  6. C#如何Json转字符串;字符串转Json;Newtonsoft.Json(Json.Net)
  7. 【转载】linux环境下tcpdump源代码分析
  8. Mysql经常使用命令
  9. $arr['id'],$arr[id]的区别
  10. mac os 显示文件列表命令 ls -a