1.mySql 删除表中大批量的数据

假设有一个表(logs)有2000万条记录,我们要在业 务不停止的情况下删除其中status=1的所有记录,差不多有1800万条,直接执行 DELETE FROM logs WHERE status=1 会发现删除失败,因为lock wait timeout exceed的错误。因为这条语句所涉及的记录数太多了,因此我们可以分批来删除,比如每10000条进行删除,那么我们可以利用MySQL这样的语句来 完成

DELETE FROM logs WHERE status=1 ORDER BY log_id LIMIT 10000;

然后分多次执行就可以把这1800万条记录成功删除。

2. 对于大量数据查询某条记录是否存在,可使用下面语句避免全表扫描,提高性能

SELECT 1 FROM users WHERE username = 'xx' LIMIT 1

3.join表时尽量缩减记录再连接 如:

select a,b,c from (select A.a,A.b,A.c from  A where 条件 )A  join ( select c,d,e from B WHERE 条件) B on A.a=B.b

4. 排序时用index代替字段名 会提高效率,适合用于简单表结构,并且知道字段位置

Select * from tbl order by 1,2

5. 关联查询时,如果要查另一个表中是否存在关联数据,我们一般写法可能用到join.

其实可以多用exist 提高性能

Select * from A WHERE EXIST(SELECT 1 from B WHERE A.id=B.id)

mysql使用小技巧的更多相关文章

  1. mysql优化小技巧

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  2. MySQL 优化小技巧

    碎片整理: mysql数据一开始是在磁盘上顺序存放的,如果数据表有频繁的update改动,那么数据就会形成很多碎片,拖慢速度和不利于索引: 优化碎片有两种方式: alter table user en ...

  3. mysql一些小技巧

    1 强制命中索引:force index 某些时候查询,索引会失效,可以进行强制命中索引 2 group_concat 能将相同的行组合起来. 当然,我推荐这种操作可以在代码中操作,如果必须在特定情况 ...

  4. MySQL 基础小技巧

    把MySQL软件制作成系统服务 .把mysqld软件做成系统服务 注意:制作之前先把mysqld关掉 C:\Windows\system32>tasklist |findstr mysqld m ...

  5. 在测试时用到的一些mysql的小技巧(持续更新)

    经常使用的快捷键: 1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的sql语句 5.ctrl+shift+r ...

  6. mysql 查询小技巧

    数据字段中存放的是id集,形如  1,2,15,35   也可类推json格式 查询时不用拆分了, 用上 instr.concat搜索和连接字符串 查询fids中包含15的 select * from ...

  7. mysql查询小技巧

    如果所传bookTypeName为空则执行select * from t_bookType(搜索框里未输入信息) 否则追加 and bookTypeName like  '%"+bookTy ...

  8. 17 MySQL的小技巧

    1.正则表达式的使用   ^ 在字符串开始处进行匹配 $ 在字符串末尾处进行匹配 . 匹配任意单个字符,包括换行符 [...]  匹配出括号内的任意字符 [^...]  匹配不出括号内的任意字符 a* ...

  9. 工作中MySql的了解到的小技巧

    工作中MySql的小技巧 1. 跑脚本时,经常遇到有则更新无插入的 逻辑操作:通常情况下,来一波if()判断然后选择 更新还是插入,前两天逛论坛时发现有人在比较REPLACE INTO 和 INSET ...

随机推荐

  1. DSET收集ESXi硬件日志

    1.Open DSET CLI with administrator mode C:\Windows\system32>dellsysteminfo -s 10.125.1.xxx -u roo ...

  2. 循环语句--while

    有一种循环叫死循环,一经触发,就运行个天荒地老.海枯石烂 #coding=utf-8 count=0 while True: print("你是风儿我是沙,缠缠绵绵到天涯...", ...

  3. MVC4中 访问webservice 出现无法找到资源的错误

    出现这个情况,是mvc将webservice.asmx解析成了控制器,下面先将这个控制器忽略 继续访问出现这样的错误: 下面修改配置文件 访问成功

  4. RMQ训练题 codevs 1291 火车线路 已经搞定

    就是线段树维护区间的最小值 但是要注意 本题坑人的地方 是   a到b站  实际上是维护a到b-1  因为b站已经下车了 我勒个去呀 #include<iostream> #include ...

  5. Python解析命令行读取参数 -- argparse模块

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...

  6. soap发送报文请求和dom4j解析XML并且获得指定名称的节点信息

    package com.lzw.b2b.soap; import java.io.ByteArrayInputStream;import java.io.InputStream;import java ...

  7. 支持ASP.NET MVC

    ASP.NET MVC能很方便在后台返回JSON数据,所以与MiniUI进行数据交互非常简单. 1)后台处理: 在MVC控制器中,可以通过方法参数接收数据,也可以通过Request接收更复杂的数据对象 ...

  8. system verilog中的跳转操作

    在verilog中,使用disable声明来从执行流程中的某一点跳转到另一点.特别地,disable声明使执行流程跳转到标注名字的声明组末尾,或者一个任务的末尾. verilog中的disable命令 ...

  9. SQL Server备份脚本

    declare @bakfile varchar(30), @bakfilediff varchar(30),@pathfull varchar(50),@pathdiff varchar(50)se ...

  10. python 核心编程课后练习(chapter 3)

    3-8 #3-8 "makeTextFile.py -- create text file" import os ls = os.linesep #get filename fna ...