网络编程
位置:首页>> 网络编程>> 数据库>> MySQL查询优化(2)

MySQL查询优化(2)

作者:赵伟伟 来源:IT168 发布时间:2009-03-09 14:41:00 

标签:MySQL,数据库,查询优化

10、 对于那些声明为可变长度的数据列(如varchar型),时间长了会使得数据表出现很多碎片,减慢查询效率,我们可以用OPTIMIZE TABLE语句对之进行整理。

11、 将数据压缩到BLOB数据列里,就能只通过一次性查询找到数据,或者把BLOB数据列单独存入一个文件。

12、 有时我们可以人为的为一个数据表建立索引,然后查询这个索引达到快速查询的目的。例如:我们先给一个数据表再建一个数据列,根据数据表里其他数据列计算出一个散列值并保存到刚建的数据列里,这样就可以通过搜索散列值的方法去检索想要找到数据行。

MySQL查询优化程序是尽可能的使用索引,而且是尽可能地使用那些最为挑剔的索引,以便尽可能多和尽可能快的排除那些不符合查询条件的数据行。可以依照以下原则帮助优化程序:

1. 尽量对同类型的数据列进行比较,必要时可以先用ALTER TABLE语句把其中之一的类型修改为与另一个数据列相同。

2. 尽量让已经索引的数据列在比较表达式中单独出现。

3. 尽量减轻模糊匹配查询,例如:不要在LIKE模式的开头使用通配符等。

4. 多试几种查询命令。

5. 不要滥用MySQL的类型自动转换功能,如:数字3就不能写成字符‘3’,加重MySQL的类型转换,会使它的性能下降。

下面说说加载数据。

加载数据时要采用批量加载,尽量减少MySQL对索引的刷新率,例如:LOAD DATA 语句要比INSERT 语句效率高,如果必须使用INSERT 语句,请尽量使他们集中在一起,减少对索引的刷新次数。对于支持事务处理机制的数据表类型,应该把这些INSERT 语句放在同一个事务里,对于不支持事务处理机制的数据表类型,应该现对数据表进行写锁定,然后在数据表锁定期间发出这些INSERT语句。对于大量数据,可以先加载数据在建立索引。

在机器硬件方面:

1. 应为机器安装更多内存。

2. 购置高速磁盘以缩短I/O等待时间。

3. 使用多个物理硬盘,提高并行操作能力。

4. 使用多个处理器。

在一个具体的数据库应用系统中,要根据实际需要来采用各种优化策略,以便使顾客与公司达到双赢的目的。

0
投稿

猜你喜欢

  • 随着JS与XHTML的应用普及,越来越多的web界面应用技术出现在网站上,比如我们常见的日历控件,搜索下拉框等,这些web界面应用技术大大的
  • 字体设计是人类商业活动的需求,它随着时代和科学技术的进步而不断地变化着。被广泛应用于网络生活的各个方面。现代字体设计在计算机技术的应用中已经
  • 最常见的XML数据类型有:Element, Attribute,Comment, Text.     &nbs
  • 由于工作对人的眼球和精神都会带来一定的疲劳,所以在界面设计中,希望用户能够准确的关注重要的信息,而不因为用户的长期使用而流失信息。最近在看《
  • 什么是RC4算法呢?也许您还不知道,没关系我为您找了下相关资料方便大家查看;RC4加密算法 RC4加密算法是大名鼎鼎的RSA三人组
  • 以下为SQL SERVER7.0以上版本的字段类型说明。SQL SERVER6.5的字段类型说明请参考SQL SERVER提供的说明。bit
  • 写了网址规范化后,尚奇公司的柳先生建议再深入讨论一下301转向/重定向。下面就谈谈我所了解的301转向在搜索引擎优化方面的应用。什么是301
  • 在JAVASCRIPT中LEFT函数的等价函数:function left(mainStr,lngLen) {if&nb
  • 我还我还是有必要改一个标题,(原题为 让你想不通的"bug"),以免有同学误会。先看代码。看完之后我有个问题提问一下,看
  • 平时我们获取事件对象一般写法如下:function getEvent(event) {    return event
  • 目前SQL INJECTION的攻击测试愈演愈烈,很多大型的网站和论坛都相继被注入。这些网站一般使用的多为SQL SERVER数据库,正因为
  • 我需要查询从现在算起五天前的日期。按照商业习惯,这五天应该不包含星期六和星期天。专家回答:对于许多跟商业日期有关的情况,最好的解决方案是使用
  • 我从11岁开始编程,并且一直都很喜欢技术和编程。这些是我一直以来获得的经验教训。作为一个程序员,你可能需要这样的忠告。我更希望每个人在获取这
  • 因为要做移动梦网WAP的一些接口,所以要用到这种方式,接下来会有ASP.net版本的,这个是ASP版本的,利用了MSXML2.XMLHTTP
  • 昨天在做mergeCSS的时候遇到两个正则匹配的问题,也花了不少的时间,最后在CSS森林群的 CE 同学帮助下,才完成了这俩正则,特别记录下
  • 安装时建议你为MySQL管理创建一个用户和组。由该组用户运行mysql服务器并执行管理任务。(也可以以root身份运行服务器,但是不推荐)第
  • 以下的文章主要是介绍SQL Server数据转换服务的4妙用之执行一些自动化的操作。在SQL Server数据库的实际操作管理中,数据库管理
  • 写在前面:前一段时间 kejun 给我们培训JavaScript的时候,在幻灯片上推荐了很多特别经典的文章,其中就有这一篇。读过之后感觉很不
  • 1、首先停止正在运行的MySQL进程 Linux下,运行 killall -TERM mysqld Windows下,如果写成服务的 可以运
  • 这样做的好处是:利用表格来装载数据,不言而喻是最好的,你可以很灵活的为每个单元格定义样式。下面是具体的做法首先在photoshop设计一个效
手机版 网络编程 asp之家 www.aspxhome.com