zoukankan      html  css  js  c++  java
  • ​二十种实战调优MySQL性能优化的经验

    ​http://www.searchdatabase.com.cn/showcontent_58391.htm
     
    【为查询缓存优化你的查询】
    像 NOW() 和 RAND() 或是其它的诸如此类的SQL函数都不会开启查询缓存,因为这些函数的返回是会不定的易变的。所以,你所需要的就是用一个变量来代替MySQL的函数,从而开启缓存。
     
     
    【EXPLAIN 你的 SELECT 查询】
    使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。
     
    【当只要一行数据时使用 LIMIT 1】
    当你查询表的有些时候,你已经知道结果只会有一条结果,但因为你可能需要去fetch游标,或是你也许会去检查返回的记录数。
     
    【为搜索字段建索引】
      索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。
     
    【在Join表的时候使用相当类型的例,并将其索引】
      如果你的应用程序有很多 JOIN 查询,你应该确认两个表中Join的字段是被建过索引的。这样,MySQL内部会启动为你优化Join的SQL语句的机制。
      而且,这些被用来Join的字段,应该是相同的类型的。例如:如果你要把 DECIMAL 字段和一个 INT 字段Join在一起,MySQL就无法使用它们的索引。对于那些STRING类型,还需要有相同的字符集才行。(两个表的字符集有可能不一样)
     
    【避免 SELECT *】
     
    【永远为每张表设置一个ID】
      我们应该为数据库里的每张表都设置一个ID做为其主键,而且最好的是一个。
     
    【使用 ENUM 而不是 VARCHAR】
      ENUM 类型是非常快和紧凑的。在实际上,其保存的是 TINYINT,但其外表上显示为字符串。这样一来,用这个字段来做一些选项列表变得相当的完美。
      如果你有一个字段,比如“性别”,“国家”,“民族”,“状态”或“部门”,你知道这些字段的取值是有限而且固定的,那么,你应该使用 ENUM 而不是 VARCHAR。
     
    【从 PROCEDURE ANALYSE() 取得建议】
     
    【尽可能的使用 NOT NULL】
     
    【把IP地址存成 UNSIGNED INT】
     
    【固定长度的表会更快】
     
    【垂直分割】
     
    【越小的列会越快】
     
    【选择正确的存储引擎】
     
     
    其他资料
    mysql性能优化-慢查询分析、优化索引和配置:http://www.oicto.com/mysql-explain-show/
     
     
  • 相关阅读:
    自定义swiper索引值的样式
    返回上一页面后页面后自动刷新(跨域也可)
    点击跳转到页面指定位置
    移动端输入框弹起影响布局(包括fixed布局情况)
    thinkPHP5模版页面volist循环offset使用
    Vue i18n国际化在实际项目中的使用
    前端Cookie、essionStorage、LocalStorage 的区别
    前端常用的一些浏览器对象
    前端取?后面的值
    前端下载文件重命名解决
  • 原文地址:https://www.cnblogs.com/lsx1993/p/4793152.html
Copyright © 2011-2022 走看看