• mysql使用小技巧


    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) 

  • 相关阅读:
    判断二叉树是否BST
    树基础训练(一)
    Trie 简介
    二叉树的一些补充
    红黑树
    平衡二叉树(AVL)介绍及其实现
    二叉查找树(BST)的实现
    二叉树基本知识
    微信小程序提示框
    urllib3使用指南
  • 原文地址:https://www.cnblogs.com/agile2011/p/5275724.html
Copyright © 2020-2023  润新知