zoukankan      html  css  js  c++  java
  • mysql优化

    1)开启mysql慢查询日志

    使用 show variables like "%slow%"; 命令来查看mysql慢查询配置信息

    (其中)log_slow_queries : 慢查询日志开关

    (其中)slow_launch_time:慢查询时间设置(以秒为单位),超过这个时间的查询语句为慢查询语句,会自动记录到慢查询日志里

    修改配置方法一(临时,重启mysqld后自动恢复):

    set global log_slow_queries=ON;

    set global slow_launch_time=10;

    修改配置方法二(永久):

    修改 /etc/my.cnf 配置文件,加入下面两句配置参数

    log-slow-queries = /tmp/mysql-slow.log
    long_query_time = 2

    2)索引优化建议

    使用 "desc sql语句" 命令来分析出当前的sql语句的性能

    type:查询的类型

    possoble_keys:可能使用的索引

    key:使用的索引

    ref:建议

    3)使用索引

    1、给条件字段(where、order by、group having等)加索引;

    2、如果字段类型为varchar类型,必须使用单引号或双引号包裹(错误:where user_name=123,正确:where user_name ="123"),否则索引无效;

    3、如果where使用like模糊查询,前面不能放%(错误:where user_name like "%三%",正确:where title like "张%"),否则索引无效;

    4、条件使用and或or时,这两个(或多个)条件字段都必须有索引(例如:select * from users where user_name="张三" and user_sex=1),否则整条查询语句索引无效。

     5、尽量不要使用子查询,嵌套了子查询的sql语句,只有子查询能用到索引,效率较低!!可以使用复合查询或连接查询替代

    4)查看数据表是否有错误

    check table tbl_name;

    5)数据表优化(碎片整理)

    optimize table tbl_name;

    6)优化查询语句

    1、insert .... values ....(...),(...),(...)  一次性插入多个数据可以减少mysql的连接和关闭的资源损耗;

    2、group by 默认是升序排序的,加上order by null可以禁止排序,在对大量数据进行分组聚合时,可以提高一定的效率

    7)分区、分表、使用视图

  • 相关阅读:
    C# 普印力RFID打印机模板打印
    C# IP地址段端口扫描器封装调用
    W3100SMS 短信猫代码发送 下
    C#动态创建Access数据库,创建加密码Access数据库,更改Access密码
    C# 区分键盘和红外线扫描枪输入 模拟扫描枪
    文件格式大全
    winform获取当前Url地址
    [WPF]使用C#代码实现DataTemplate
    钩子类型
    WM_*
  • 原文地址:https://www.cnblogs.com/tujia/p/5281149.html
Copyright © 2011-2022 走看看