转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
mysql数据库优化(3)         ★★★★

mysql数据库优化(3)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:659 更新时间:2009/4/22 20:10:47
第四步

1:索引的使用,索引的重要性就不说了,功能也不说了,只说怎么做.

首先要明确所有的mysql索引(primary,unique,index)在b树中有存储.索引主要用语:

a:快速找到where指定条件的记录

b:执行联结时,从其他表检索行

c:对特定的索引列找出max()和min()值

d:如果排序或者分组在一个可用键的最前面加前缀,排序或分组一个表

e:一个查询可能被用来优化检索值,而不用访问数据文件.如果某些表的列是数字型并且正好是某个列的前缀,为了更快,值可以从索引树中取出

2:存储或者更新数据的查询速度

 grant的执行会稍稍的减低效率.

 mysql的函数应该被高度的优化.可以用benchmark(loop_count,expression)来找出是否查询有问题

 select的查询速度:如果想要让一个select...where...更快,我能想到的只有建立索引.可以在一个表上运行myisamchk--analyze来更好的优化查询.可以用myisamchk--sort-index--sort-records=1来设置用一个索引排序一个索引和数据.

3:mysql优化where子句

3.1:删除不必要的括号:

 ((a AND b) AND c OR (((a AND b) AND (a AND d))))>(a AND b AND c) OR (a AND b AND c AND d)

3.2:使用常数

 (a b>5 AND b=c AND a=5

3.3:删除常数条件

(b>=5 AND b=5) OR (b=6 AND 5=5) OR (b=100 AND 2=3) > b=5 OR b=6

3.4:索引使用的常数表达式仅计算一次

3.5:在一个表中,没有一个where的count(*)直接从表中检索信息

3.6:所有常数的表在查询中在任何其他表之前读出

3.7:对外联结表最好联结组合是尝试了所有可能性找到的

3.8:如果有一个order by字句和一个不同的group by子句或者order by或者group by包含不是来自联结的第一个表的列,那么创建一个临时表

3.9:如果使用了sql_small_result,那么msyql使用在内存中的一个表

3.10:每个表的索引给查询并且使用跨越少于30%的行的索引.

3.11在每个记录输出前,跳过不匹配having子句的行



4:优化left join

在mysql中 a left join b按以下方式实现

a:表b依赖于表a 

b:表a依赖于所有用在left join条件的表(除了b)

c:所有left join条件被移到where子句中

d:进行所有的联结优化,除了一个表总是在所有他依赖的表后读取.如果有一个循环依赖,那么将发生错误

e:进行所有的标准的where优化

f:如果在a中有一行匹配where子句,但是在b中没有任何匹配left join条件,那么,在b中生成的所有设置为NULL的一行

g:如果使用left join来找出某些表中不存在的行并且在where部分有column_name IS NULL测试(column_name为NOT NULL列).那么,mysql在它已经找到了匹配left join条件的一行后,将停止在更多的行后寻找


[其他]关于数据库优化查询计划的方法总结  [建站心得]我从建站、优化、网赚一路走来的足迹
[搜索优化]SEO优化的一些资料  [网络安全]防火墙性能优化指南—思路决定安全
[Web开发]网站优化及效益篇—如何使用简单的代码实现功能强…  [网页制作]网站优化之14条专家经验
[网页制作]如何提高网页的显示速度—站长优化技巧  [网页制作]网页优化相关基础知识与建议下篇
[网页制作]网页优化相关基础知识与建议中篇  [网页制作]网页优化相关基础知识与建议上篇
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台