快捷搜索:
来自 网络数据库 2019-10-14 07:20 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

sql语句的本事及优化

 三、使用group by 分组语句前边跟with rollup 关键字,能够统计出越来越多的新闻。(with rollup后不能够再选用order by)

图片 1

二、使用Rand()函数获取随机数据

rand();随机数函数

1、随机排序 mysql> select * from hello order by rand();

2、随机列收取3条 mysql> select * from hello order by rand() limit 3;

一、sql中使用正则表明式

select name,email from user where email Regexp "@163[.,]com$";

sql语句中利用Regexp对品质影响十分的大。

 

 四、外键

表B第11中学的三个家常的列是另三个表B2的主键,若是B2表中的一条记下删除那表B第11中学涉及该主键值的列也理应删除。

不建议利用外键,在行使的时候要在乎。

mysql中的Innodb存款和储蓄引擎帮衬外键。

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)

图片 2

mysql> show status like 'connections';   查看mysql的连接量(无论壹回接二连三是或不是中标)

mysql> show status like 'uptime'; 查看mysql工时 单位秒

2、关于mysql慢查询

a、查看mysql慢查询状态

图片 3

  • 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  查看慢查询日志地点:mysql> show variables like 'slow_query%';
  • 张开慢查询:提供了大局变量slow_query_log、slow_query_log_file能够灵活地调节enable/disable慢查询,该办法不必重启服务器, set global slow_query_log=1开启了慢查询日志只对眼下数据库生效,假若MySQL重启后则会失效。假若要恒久生效,就必得修改配置文件my.cnf

图片 4

 

b、慢查询时间(秒):会将select 语句推行时间超越10秒的sql记录到慢查询日志中

图片 5

 

 设置慢查询时间   mysql> set global long_query_time =1;

注意:使用命令 set global long_query_time=1修改后,供给重新连接或新开多少个会话技能看见修改值。你用show variables like 'long_query_time'查看是眼下对话的变量值,你也能够绝不再行连接会话,而是用show global variables like 'long_query_time';

3、慢查询日志深入分析

1、查看累积实践过一回慢查询:

   图片 6

 结果: 超越1秒即为慢查询,一共有2条慢查询

 

2、查看那一个慢查询sql 

    展开慢查询日志文件 DESKTOP-GGLOGPK-slow.log

    图片 7

  • Query_time SQL施行的时刻,越长则越慢
  • Lock_time 在MySQL服务器等第(不是在蕴藏引擎阶段)等待表锁时间
  • Rows_sent 查询重返的行数
  • Rows_examined 查询检查的行数

    在此间能够记录每一遍慢查询的sql语句。

 3、使用 desc 与explain 定位深入分析sql

 图片 8

图片 9

 

 

五、使用 ?  % 查看扶植手册

? create 、? opti% 、? contents 、? functions

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:sql语句的本事及优化

关键词: