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

    mySql的优化:

    1>查询缓存优化sql

      大多数的MySql数据库服务器都开启了缓存查询,这是提高sql性能的最有效方法之一,缓存查询是由mysql数据库引擎处理的。当有很多相同查询被执行了多次时,这些查询结果会被放在一个缓存中,这样后续相同sql的查询就不用访问表了,直接从缓存中取即可。

      所以sql中尽量要避免写如函数,例如:Now(),Rand()等,因为使用函数不会是服务器开启缓存功能,要尽量写一些固定的变量做where条件。

    2>使用Explain关键字

      在sql查询中用运Explain关键字能够看到rows列,让你了解sql查询的状态,能够发现sql执行中的瓶颈所在,在哪里出现了问题,然后正对问题进行解决。

    3>学会使用limit 1

      当用sql查询的时候,想知道是否有这样的条件的数据存在,这是用limit 1 ,sql搜索引擎会在找到一条符合的几率就会停止,很显然能够有效的提高检索的效率。

    4>为搜索的字段添加索引

      为搜索的字段添加索引也是一个提高检索效率的很有效的方法之一,

      alter table [表名] add index [字段名](mysql添加索引的方法)

    5>尽量避免使用Order By Rand() 方法

      使用这个方法会很严重的消耗cpu的执行时间,因为这样会使每一行都去执行rand() 方法,并且去标记他们的行号。6>避免使用Select *

      每个是数据应该都是,查找的字段越多 则执行的会越慢,所以我们要经可能的取,用到那些字段就取检索哪些字段。

    7>要为每一张表都设置一个id

      该id最好int类型,设置成自增(auto_increment),让id作为主键,在查询中会用到的,很方便。

    8>当表中某些字段的值是固定的尽量使用enum类型,避免varchar类型,

      因为enum类型是非常快和紧凑的,这样会节省空间,同时sql当查询这种类型的字段的时候也是很快的

    9>尽可能的使用NOT NULL

      因为在数据库中null也是需要占一定空间的,而且在比较的时候内部的计算是很复杂的,所以要尽量避免是用null

    10>固定长度的表会更快,尽量将比较大的表进行垂直分割

      将字段长度固定的放到一个表里边,然后用外键与他们相关联,会提高查询的速度

    11>尽量拆分比较大的delete和insert语句

      如果你需要在一个在线的网站上去执行一个大的DELETE或INSERT查询,一定要非常小心,要避免你的操作让你的整个网站停止相应。因为这两个操作是会锁表的,表一锁住了,别的操作都进不来了。

    Apache会有很多的子进程或线程。所以,其工作起来相当有效率,而我们的服务器也不希望有太多的子进程,线程和数据库链接,这是极大的占服务器资源的事情,尤其是内存。

      如果你把你的表锁上一段时间,比如30秒钟,那么对于一个有很高访问量的站点来说,这30秒所积累的访问进程/线程,数据库链接,打开的文件数,可能不仅仅会让你泊WEB服务Crash,还可能会让你的整台服务器可能就会挂掉。

      所以,当有一个大的处理,一定把其拆分,使用LIMIT条件是一个好的方法。并且每执行一次睡眠几秒钟,然后接着执行。

    后期还会又追加。。。,共同学习

  • 相关阅读:
    使用RecyclerView打造Gallery
    Retrofit简介与使用方法(翻译)
    迷宫实现递归版本C++
    牛客笔试题
    牛客笔试题---求最长重复词长度之和
    C++句柄解析
    C++双向循环链表实现
    String C++完整实现。
    String写时拷贝实现
    顺序表操作补充(查找方法增加)
  • 原文地址:https://www.cnblogs.com/yuxin-555xt/p/Sqlyouhua.html
Copyright © 2011-2022 走看看