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

    给你一台服务器让你去优化,第一,先要去观察问题,只有观察到了问题,才能知道如何去优化。

    先做基准测试,看看我们的服务器潜力到底有多大。

    1.打开Mysql服务

    2.查看我们Mysql的版本和安装了哪些相关的东西

    3.登录Mysql

     

    4.执行show status;

    5.返回200多行数据,着重关注这3行

    当前已经发生了多少次查询

    有几个线程过来连接了(有多少个连接)

    有几个进程正在工作(连接中有多少个是活动的)

    AWK:按行读取文件,把当前行赋给变量$0,把当前行的第一列赋给$1,第二行赋给$2,以此类推。

    下面这几条命令执行的就是

      1. 把score.txt中的内容原样打印出来。
      2. 把每一行的第一列的值打印出来
      3. 把每一行的第二列的值打印出来

        AWK还可以使用正则匹配。如下这条命令,就是把l开头的行,打印出来。


        show status;命令,也可以用mysqladmin  -uroot ext替换。

        所以如下这条命令就是,把mysqladmin –uroot ext命令的结果,传给awk,然后把Queries开头的行的第四列的值打印出来

           

    如下的命令是,把Queries,Threads_Connected,Threads_running开头的行的第四列的值打印出来。

    在AWK中,我们还可以设置变量,下面的名师是,把Queries,Threads_Connected,Threads_running开头的行的第四列的值分别赋给变量q,c,r,然后再通过变量,把这些值打印出来,得到的结果是一样的。

    AWK的执行过程是会,把正则匹配及处理方式带入到每一行。循环过程中的每一行,先通过正则对这一行进行匹配,如果匹配成功,则用处理方式进行处理,否则,跳过。就像上述命令,就是正则先匹配Queries,Threads_Connected,Threads_running,匹配成功之后,用处理方式进行处理,处理方式就是打印,也就是printf函数

    试验

    1.启动memcached,给他512M内存

    2.启动Nginx

    3.由于我们的nginx是fastcgi的方式,所以需要把php也起来

     

     

    表的优化与列类型选择

    列选取原则

    1. 字段类型优先级,整型>data,time>enum>char,varchar>blob

    原因:整型,time运算块,节省空间

    char varchar要考虑字符集的转换与排序时的校对集,速度慢

    Blob无法使用内存临时表

    1. 够用就行,不要慷慨(如smallint,varchar(N))

    原因:大的字段浪费内存,影响速度

    以varchar(10),varchar(300)存储的内容相同,但是在表联查时,varchar(300)需要花更多的内存

    1. 进来避免用NULL

    原因:NULL不利于索引,要用特殊的字符来标注

    在磁盘上占据的空间其实更大

    试验

    可以建立2张字段相同的表,一个允许为null,一个不允许为null,各加入1W条数据,查看索引文件的大小。可以发现null的索引要大些

     

    Enum类说明

    1. enum列在内部用整型来存储

    2. enum列月enum列想关联速度最快(意思是如果一张表的字段使用了enum,那么另外一张表也尽量使用enum)
    3. enum列比char,varchar的弱势—---在碰到与char关联时,要转化,要花时间
    4. 有时在于,当char非常长时,enum依然是整型固定长度。当查询的数据量越大时,enum的有时越明显
    5. enum与char,varchar关联,因为要转化,速度要比enum->enum,char->char要慢,但有时候也这样用----就是在暑假了特别大时,可以节省IO
  • 相关阅读:
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    线性表——数组实现
    this指针与const成员函数
    类对象拷贝是不是赋值操作??
    你真的理解内联函数吗?
    名字查找先于类型检查:函数重载与作用域
    谈谈函数调用
    推荐形参使用常量引用:void func(const T &);
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/6762831.html
Copyright © 2011-2022 走看看