mysql学习之 sql语句的技巧及优化
一、sql中使用正则表达式
select name,email from user where email Regexp "@163[.,]com$";
sql语句中使用Regexp对性能影响较大。
二、使用Rand()函数获取随机数据
rand();随机数函数
1、随机排序 mysql> select * from hello order by rand();
2、随机列抽取3条 mysql> select * from hello order by rand() limit 3;
三、使用group by 分组语句后面跟with rollup 关键字,可以统计出更多的信息。(with rollup后不能再使用order by)

四、外键
表B1中的一个普通的列是另一个表B2的主键,如果B2表中的一条记录删除那表B1中关联该主键值的列也应该删除。
不建议使用外键,在使用的时候要注意。
mysql中的Innodb存储引擎支持外键。
五、使用 ? % 查看帮助手册
? create 、? opti% 、? contents 、? functions
mysql优化
一、sql语句如何优化
1、查询数据库各种sql类型语句的执行情况。
show [session | global ] status :了解数据库中各种sql的执行频率
session:表示查询当前建立连接以来各种SQL的执行频率
global:表示自数据库启动以来各种SQL的执行频率
一般我们主要查询这些信息:
com_xxx :表示每个xxx语句的执行次数,该方式可以查看mysql任何存储引擎的sql语句执行次数记录。
show GLOBAL status like "com_select%"; // 查看sql 中select语句的执行次数
show GLOBAL status like "com_insert%"; // 查看sql 中insert语句的执行次数
show GLOBAL status like "com_update%"; // 查看sql 中update语句的执行次数
show GLOBAL status like "com_delete%";// 查看sql 中delete语句的执行次数
对于存储引擎为InnoDB:该方式查询的记录数是计算你每次SQL操作数据的行数。(例如:delete from hello where id <=10 该语句删除了10条记录,那么Innodb_rows_deleted=10)

mysql> show status like 'connections'; 查看mysql的连接量(无论一次连接是否成功)
mysql> show status like 'uptime'; 查看mysql工作时间 单位秒
2、关于mysql慢查询
a、查看mysql慢查询状态

slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。
log_slow_queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
slow_query_log_file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
b、慢查询时间(秒):会将select 语句执行时间超过10秒的sql记录到慢查询日志中

3、定位分析sql语句(desc 与 explain 方式任选其一)


mysql学习之 sql语句的技巧及优化的更多相关文章
- MYSQL学习笔记——sql语句优化工具
优化sql:思路: 使用explan->先查询type类型看看是all还是ref,然后判断 possible_keys (显示可能应用在这张表中的索引, 一个或多个.查询涉及到的字段是若存在索引 ...
- MySQL学习【SQL语句上】
1.连接服务端命令 1.mysql -uroot -p123 -h127.0.0.1 2.mysql -uroot -p123 -S /tmp/mysql.sock 3.mysql -uroot -p ...
- MYSQL学习笔记——sql语句优化之索引
上一篇博客讲了可以使用慢查询日志定位耗时sql,使用explain命令查看mysql的执行计划,以及使用profiling工具查看语句执行真正耗时的地方,当定位了耗时之后怎样优化呢?这篇博客会介绍my ...
- MySQL学习(二)——SQL语句创建删除修改以及中文乱码问题
一.对数据库的操作 1.创建一个库 create database 库名; 创建带有编码的:create database 库名 character set 编码; 查看编码:show create ...
- MySQL的常用SQL语句.md
修改密码 这是常见的大家一般都要用的 首先 安装成功了打开cmd --> mysql -u root -p -->输入你的密码 修改mysql root用户密码 格式 ...
- mysql一条sql语句如何执行的?
mysql 一条sql语句如何执行的? 文章内容源自:极客时间-林晓彬老师-MySQL实战45讲 学习整理 在了解一条查询语句如何执行之前,需要了解下MySQL的基本架构是怎样的,如下图所示: 可以看 ...
- 技术分析 | 浅谈在MySQL体系下SQL语句是如何在系统中执行的及可能遇到的问题
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 SQL语句大家并不陌生,但某种程度上来看,我们只是知道了这条语句是什么功能,它可 ...
- MySQL 常用的sql语句小结(待续)
mysql 常用的sql语句 1.查看数据库各个表中的记录数 USE information_schema; SELECT table_name,table_rows FROM tables WHER ...
- mysql使用基础 sql语句(一)
csdn博文地址:mysql使用基础 sql语句(一) 点击进入 命令行输入mysql -u root -p,回车再输入密码,进入mysql. 终端命令以分号作为一条语句的结束,可分为多行输入,只需 ...
随机推荐
- Scrapy框架爬虫初探——中关村在线手机参数数据爬取
关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...
- Android性能优化之巧用软引用与弱引用优化内存使用
前言: 从事Android开发的同学都知道移动设备的内存使用是非常敏感的话题,今天我们来看下如何使用软引用与弱引用来优化内存使用.下面来理解几个概念. 1.StrongReference(强引用) 强 ...
- python 数据类型 ---文件一
1.文件的操作流程: 打开(open), 操作(read,write), 关闭(close) 下面分别用三种方式打开文件,r,w,a 模式 . "a"模式将不会覆盖原来的文件内容, ...
- linux服务器开发一 基础
注:本文仅限交流使用,请务用于商业用途,否则后果自负! Linux 1.Linux介绍 Linux是类Unix计算机操作系统的统称. Linux操作系统的内核的名字也是“Linux”. Linux这个 ...
- 【开源】专业K线绘制[K线主副图、趋势图、成交量、滚动、放大缩小、MACD、KDJ等)
这是一个iOS项目雅黑深邃的K线的绘制. 实现功能包括K线主副图.趋势图.成交量.滚动.放大缩小.MACD.KDJ,长按显示辅助线等功能 预览图 最后的最后,这是项目的开源地址:https://git ...
- LINQ to SQL语句(7)之Exists/In/Any/All/Contains
适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...
- Linux基础介绍【第五篇】
linux权限位 Linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主权限.属组权限.其他用户权限. r:read可读权限,对应数字4: w:write可写权限,对应数字 ...
- 【转】 XenServer的架构
一.Dom0或者控制域 XenServer从安装上看起来像是一个Linux,所以有些同学认为XenServer就是Linux或者是Linux修改的.真实的XenServer和Linux的关系是这样的: ...
- 深入理解Spring MVC
如何让一个普通类成为Controller? 方案一:实现接口Controller 解析:handleRequest(request,response) 方案二:继承AbstractController ...
- 在 Linux 上使用 Jexus + Mono 建立 Asp.Net 网站.
godaddy 买了个net空间,一点也不好用. 几个G的数据, 上传数据只有几kb , 想用 ssh 登录上去用 wget 下载,也不行 windows的主机貌似没有 ssh 功能... 后来实在忍 ...