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工作时间 单位秒

时间: 2024-12-03 23:29:12

sql语句的技巧及优化的相关文章

通过分析SQL语句的执行计划优化SQL(二)

优化|语句|执行 第5章 ORACLE的执行计划 背景知识:        为了更好的进行下面的内容我们必须了解一些概念性的术语: 共享sql语句    为了不重复解析相同的SQL语句(因为解析操作比较费资源,会导致性能下降),在第一次解析之后,ORACLE将SQL语句及解析后得到的执行计划存放在内存中.这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享.因此,当你执行一个SQL语句(有时被称为一个

通过分析SQL语句的执行计划优化SQL_MsSql

如何干预执行计划 - - 使用hints提示 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比.此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从而使语句高效的运行.例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使用全表扫描.在Oracle中,是通过为语句添加hints(提示)来实现干预优化器优

通过分析SQL语句的执行计划优化SQL

如何干预执行计划 - - 使用hints提示 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比.此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从而使语句高效的运行.例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使用全表扫描.在Oracle中,是通过为语句添加hints(提示)来实现干预优化器优

PHP 批量删除 sql语句_php技巧

首先要了解sql语句 $SQL="delete from `jb51` where id in (1,2,4)"; 表单大概是: 复制代码 代码如下: <form action="" method="post"> <input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="1"/>

不会sql语句....谁帮我优化下

问题描述 select * from dbo.tbGoodsInfo where (id in (select goodsId from dbo.tbGoodsAddLink ) or id in(select goodsId from dbo.tbGoodsBindBar where barUserId=(select id from dbo.t_ClientInfo where bh='cdcs'))) and auditStatus=0 and bupd!=-1unionselect *

Yii框架调试心得--在页面输出执行sql语句_php技巧

我们使用:yiidebugtb来调试(因为用他界面比较美观,不影响界面其他元素). 1.下载yiidebugtb,并且放入到 application.extensions.yiidebugtb 目录 2.修改main.php,加入如下代码: 复制代码 代码如下:         'log'=>array(             'class'=>'CLogRouter',             'routes'=>array(                 array(      

ORACLE性能优化之SQL语句优化

文章来源:http://blog.csdn.net/jdzms23/article/details/23850783 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] SQL语句执行过程 1 SQL语句的执行步骤 2 典型SELECT语句完整的执行顺序 3 SQL语句执行过程 优化器及执行计划 1 SQL优化方法论 合理应用Hints 1Hints 索引及应用实例 1什么是索引 2索引分类 3什么时候使用索引 4改写SQL使用索引 5索引应用 其他优化技术及应用 1其他优化

SQL Server数据库性能的优化

server|数据|数据库|性能|优化 编者按:数据库性能优化和数据库管理系统密切相关,不同的数据库管理系统在具体操作上有很大不同.继本报连续在2003年第48期.49期上刊登<Sybase数据库性能调优>和<Oracle服务器性能调整攻略>,分别讨论了Sybase和Oracle数据库管理系统以后,本期我们将具体介绍SQL Server数据库的性能优化方法. 数据库是企业信息的核心,其应用水平的高低直接影响到企业管理水平.选择了一个高性能的数据库产品不等于就有一个好的数据库应用系统

Informix数据库SQL语句高速缓存技术应用实践

正如我们所知,Informix 数据库优化器采用基于"成本"优化方式,当接收到用户发出的SQL语句后,Informix优化器要对SQL语句进行编译,根据成本最低的原则生成最终的执行计划进行执行.对于每一个SQL语句,都要进行编译工作,为了提高系统的性能,特别是对具有大量相同SQL语句的系统,Informix从9.2版本开始,就提供了SQL语句高速缓存机制SQL Statement Cache (SSC),将已分析并优化的SQL语句缓存到内存中,以使执行相同SQL语句的多个用户能够实现以