用户登陆 用户注册
您的位置:首页> 电脑专栏>内容正文
优化MySQL数据库性能的八大“妙手”
[正文]:文探讨了提高mysql 数据库性能的思路,并从8个方面给出了具体的解决方法。
  1、选取最适用的字段属性  mysql可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。
因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。
例如,在定义邮政编码这个字段时,如果将其设置为char(255),显然给数据库增加了不必要的空间,甚至使用varchar这种类型也是多余的,因为char(6)就可以很好的完成任务了。
同样的,如果可以的话,我们应该使用mediumint而不是bigin来定义整型字段。
  另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为not null,这样在将来执行查询的时候,数据库不用去比较null值。
  对于某些文本字段,例如“省份”或者“性别”,我们可以将它们定义为enum类型。
因为在mysql中,enum类型被当作数值型数据来处理,而数值型数据被处理起来的速度要比文本类型快得多。
这样,我们又可以提高数据库的性能。
  2、使用连接(join)来代替子查询(sub-queries)  mysql从4.1开始支持sql的子查询。
这个技术可以使用select语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。
例如,我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户id取出来,然后将结果传递给主查询,如下所示:delete from customerinfowhere customerid not in (select customerid from salesinfo )   使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的sql操作,同时也可以避免事务或者表锁死,并且写起来也很容易。
但是,有些情况下,子查询可以被更有效率的连接(join).. 替代。
例如,假设我们要将所有没有订单记录的用户取出来,可以用下面这个查询完成: select * from customerinfowhere customerid not in (select customerid from salesinfo )   如果使用连接(join).. 来完成这个查询工作,速度将会快很多。
尤其是当salesinfo表中对customerid建有索引的话,性能将会更好,查询如下:select * from customerinfo left join salesinfoon customerinfo.customerid=salesinfo. customerid where salesinfo.customerid is null设置数据路径,把数据库数据文件放在共享的nfs目录下(nas服务器), pid和inniodb文件要放到服务器本地目录上,才能正常启动、停止服务: 1125 vi /etc/my.cnf [mysqld] #where to install a database data datadir=/data/mysqldata #where to install a innodb engine innodb_data_home_dir = /usr/local/mysql/data innodb_log_group_home_dir= /usr/local/mysql/data innodb_data_file_path=ibdata1:50m;ibdata2:50m:autoextend 1106 cp ./support-files/mysql.server /etc/rc.d/init.d/ vi /etc/rc.d/init.d/mysql.server 编译第222开始的相关的两行,把pid文件放在服务器本地目录上: pid_file=/usr/local/mysql/data/mysqlmanager-`/bin/hostname`.pid server_pid_file=/usr/local/mysql/data/`/bin/hostname`.pid 安装mysql的基本数据库


网站首页 培训课程 维修指南
技术文章 家电专栏 供应信息
求购信息 培训资讯 展会信息
电脑专栏 教程下载 资料下载
常用软件 PLC教程 PLC资料
变频伺服 低压电器 维修资料
人机界面 自控仪表 工控机类
文章标题: 搜文章
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
 京ICP备11002135号
报时(2026-04-06 01:58:37) 流量统计