• SQL技巧及优化


    rand()函数:生成0到1之间的随机数,
    使用rand()和order by 可以把表中的记录随机排序
    例如:select * from t1 order by rand()

    group by 结合with rollup


    show status 查询sql执行频率:
    show status like ‘com_insert%’ 查询插入的次数
    show status like ‘com_select%’
    show status like ‘com_update%’
    show status like ‘com_delete%’

    针对innodb引擎的:
    show status like ‘innodb_rows%’;
    +———————-+———-+
    | Variable_name | Value |
    +———————-+———-+
    | Innodb_rows_deleted | 1 |
    | Innodb_rows_inserted | 6518 |
    | Innodb_rows_read | 58519129 |
    | Innodb_rows_updated | 4 |
    +———————-+———-+
    4 rows in set (0.00 sec)

    慢查询次数:
    show status like ‘%slow_queries%’;
    优化 :
    1通过慢查询日志找到执行效率低的SQL语句
    2 explain select * from tousu G

    id: 1
    select_type: SIMPLE
    table: tousu
    type: ALL
    possible_keys: NULL
    key: NULL
    key_len: NULL
    ref: NULL
    rows: 5
    Extra:
    1 row in set (0.00 sec)

    select_type:
    SIMPLE :简单表,即不使用表连接和子查询
    PRIMARY :主查询
    UNION :
    SUBQUERY:子查询

    type:ALL 通过全表扫描得到的数据
    range 范围扫描
    index_merge 索引合并优化
    eq_ref 使用主键和唯一

    possible_keys :表查询可能使用的索引
    key :实际使用的索引
    key_len :索引字段的长度

    总结:通过慢查询定位到SQL,然后explain看此SQL是否使用到索引

    索引:通过索引可以解决大多数的性能问题
    myISAM 引擎表的数据和索引分开存储,各自独立的文件,
    innodb 引擎表数据和索引存储在同一个表空间中,可以有多个文件组成

    使用like查询,后面如果是常量并且只有%号不在第一个字符,索引才可能被使用。
    如果对大的文本搜索,使用全文索引而不使用’%%’

    查询group by 后面,默认分组升序排列,可以再加上order by null,避免排序的性能损耗。
    避免使用子查询和嵌套查询,此种查询不会使用索引,,改为左右连接查询

    mysql 读写锁:
    读锁:锁定后,别人也可以读,但不能写
    写锁:只有自己可以操作,别人什么操作都不能做。
    mysql四种字符集:
    db
    server
    conn
    client

    如何设置字符集:my.conf中修改


    查看慢查询日志是否开启:
    show variables like ‘%slow%’;

    慢查询时间
    show variables like ‘%long%’;
    开启慢查询日志:
    linux 下
    vi /etc/my.conf
    log_slow_queries=slow.log
    long_query_time=8

  • 相关阅读:
    poj2388-Who's in the Middle(排序)
    poj1543-Perfect Cubes(暴力)
    poj1664-放苹果(递归)
    快速幂
    poj2389-Bull Math(大整数乘法)
    HDU2608-0 or 1(数论+找规律)
    poj1131-Octal Fractions(进制转换)
    [noip2011 d1t2]选择客栈
    [周记]8.7~8.16
    [noip2012d1t2] 国王游戏
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310983.html
Copyright © 2020-2023  润新知