zoukankan      html  css  js  c++  java
  • 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) 

  • 相关阅读:
    爬虫基础 2.1 http原理
    爬虫基础 2.1 http原理
    3.29上午
    3.28
    3.27下午
    3.27上午
    3.24上午
    3.23下午
    3.23上午
    3.22上午
  • 原文地址:https://www.cnblogs.com/agile2011/p/5275724.html
Copyright © 2011-2022 走看看