• MySQL优化技巧


    MySQL优化三大方向
    ① 优化MySQL所在服务器内核(此优化一般由运维人员完成)。
    ② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。
    ③ 对SQL语句以及表优化。
    MySQL参数优化
    1:MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看
    mysql> show variables like 'max_connections';
    2:查看当前访问Mysql的线程
    mysql> show processlist;
    3:设置最大连接数
    mysql>set globle max_connections = 5000;
    最大可设置16384,超过没用
    4:查看当前被使用的connections
    mysql>show globle status like 'max_user_connections'
    对MySQL语句性能优化的16条经验
    ① 为查询缓存优化查询
    ② EXPLAIN 我们的SELECT查询(可以查看执行的行数)
    ③ 当只要一行数据时使用LIMIT 1
    ④ 为搜索字段建立索引
    ⑤ 在Join表的时候使用相当类型的列,并将其索引
    ⑥ 千万不要 ORDER BY RAND  ()
    ⑦ 避免SELECT *
    ⑧ 永远为每张表设置一个ID
    ⑨ 可以使用ENUM 而不要VARCHAR
    ⑩ 尽可能的使用NOT NULL
    ⑪ 固定长度的表会更快
    ⑫ 垂直分割
    ⑬ 拆分打的DELETE或INSERT语句
    ⑭ 越小的列会越快
    ⑮ 选择正确的存储引擎
    ⑯ 小心 "永久链接"
    具体描述如下:
    (一) 使用查询缓存优化查询
    大多数的MySQL服务器都开启了查询缓存。这是提高性能最有效的方法之一,而且这是被MySQL引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放入一个缓存中,这样后续的相同查询就不用操作而直接访问缓存结果了。
    这里最主要的问题是,对于我们程序员来说,这个事情是很容易被忽略的。因为我们某些查询语句会让MySQL不使用缓存,示例如下:
    1:SELECT username FROM user WHERE    signup_date >= CURDATE()
    2:SELECT username FROM user WHERE    signup_date >= '2014-06-24‘
    上面两条SQL语句的差别就是 CURDATE() ,MySQL的查询缓存对这个函数不起作用。所以,像 NOW() 和 RAND() 或是其它的诸如此类的SQL函数都不会开启查询缓存,因为这些函数的返回是会不定的易变的。所以,你所需要的就是用一个变量来代替MySQL的函数,从而开启缓存。
    (二) 使用EXPLAIN关键字检测查询
    使用EXPLAIN关键字可以使我们知道MySQL是如何处理SQL语句的,这样可以帮助我们分析我们的查询语句或是表结构的性能瓶颈;EXPLAIN的查询结果还会告诉我们索引主键是如何被利用的,数据表是如何被被搜索或排序的....等等。语法格式是:EXPLAIN +SELECT语句;

    原文:https://blog.csdn.net/u013087513/article/details/77899412

  • 相关阅读:
    Netty之WebSocket和四种IO介绍
    java递归展示树形图代码实现以及遇到的问题
    String、String Buffer、String Builder
    物联网的开发应该是什么样子?
    最新 去掉 Chrome 新标签页的8个缩略图
    复化梯形求积分——用Python进行数值计算
    每日设置Bing首页图片为壁纸
    分段二次插值——用Python进行数值计算
    埃尔米特插值问题——用Python进行数值计算
    牛顿插值法——用Python进行数值计算
  • 原文地址:https://www.cnblogs.com/pan-my/p/10497152.html
Copyright © 2020-2023  润新知