转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
一些 Mysql 的优化经验         ★★★★
TINYINT 1 字节 SMALLINT 2 字节 MEDIUMINT 3 字节 INTEGER: 4 字节 BIGINT 8 字节 DOUBLE 8 字节 FLOAT(X) X <=24: 4 字节
X > 24: 8 字节 DECIMAL(M,D) M<D: D+2 字节
M>=D: M 字节 DATE 3 字节 DATETIME 8 字节 TIMESTAMP 4 字节 TIME 4 字节 YEAR 1 字节     CHAR(M) M 字节 VARCHAR(M) 值长度 + 1 字节 TINYBLOB 值长度 + 1 字节 TINYTEXT 值长度 + 1 字节 BLOB 值长度 + 2 字节 TEXT 值长度 + 2 字节 MEDIUMBLOB 值长度 + 3 字节 MEDIUMTEXT 值长度 + 3 字节 LONGBLOB 值长度 + 4 字节 LONGTEXT 值长度 + 4 字节 ENUM 1 或 2 字节
取决于枚举值数 SET 1,2,3,4, 8
取决于成员数量


[MySql]PHP存取 Mysql 数据乱码终极解决方案  [MySql]解决Table xxx is marked as crashed and should …
[MySql][MySQL]快速解决"is marked as crashed and shoul…  [MySql]MySQL DELETE语法用法详解
[MySql]mysql中时间日期格式化  [MySql]修改mysql导入文件大小限制
[其他]MySql常用命令大全  [Web开发]把ACCESS的数据导入到Mysql中的方法详解
[MySql]解决mysql 1040错误Too many connections的方法  [网页制作]写给喜欢用Dreamweaver编写CSS的人的一些建议

一些 Mysql 的优化经验

作者:闵涛 文章来源:闵涛的学习笔记 点击数:917 更新时间:2009/4/22 20:48:53
  1. 从数据库结构做起
    1. 字段类型的定义时遵循以下规则:
      1. 选用字段长度最小
      2. 优先使用定长型
      3. 尽可能的定义 "NOT NULL"
      4. 数值型字段中避免使用 "ZEROFILL"
      5. 如果要储存的数据为字符串, 且可能值已知且有限, 优先使用 enum 或 set
    2. 索引的优化至关重要(以下如果没有特殊说明, 均指查询密集的情况)
      1. 被索引的字段的长度越小, 该索引的效率越高
      2. 被索引的字段中, 值的重复越少, 该索引的效率越高
      3. 查询语句中, 如果使用了 "group" 子句, 根据其中字段出现的先后顺序建立多字段索引
      4. 查询语句中, 如果使用了 "distinct", 根据其中字段出现的先后顺序建立多字段索引
      5. "where" 子句中, 出现对同一表中多个不同字段的 "and" 条件时, 按照字段出现的先后顺序建立多字段索引
      6. "where" 子句中, 出现对同一表中多个不同字段的 "or" 条件时, 对重复值最少的字段建立单字段索引
      7. 进行 "内/外连接" 查询时, 对 "连接字段" 建立索引
      8. 对 "主键" 的 "unique" 索引 毫无意义, 不要使用
      9. 被索引字段尽可能的使用 "NOT NULL" 属性
      10. 对写入密集型表, 尽量减少索引, 尤其是 "多字段索引" 和 "unique" 索引
  2. 查询语句的优化
    1. 多多利用 "explain" 查询索引使用情况, 以便找出最佳的查询语句写法和索引设置方案
    2. 慎用 "select *", 查询时只选出必须字段
    3. 查询使用索引时, 所遍历的索引条数越少, 索引字段长度越小, 查询效率越高 (可使用 "explain" 查询索引使用情况)
    4. 避免使用 mysql 函数对查询结果进行处理, 将这些处理交给客户端程序负责
    5. 使用 "limit" 时候, 尽量使 "limit" 出的部分位于整个结果集的前部, 这样的查询速度更快, 系统资源开销更低
    6. 在 "where" 子句中使用多个字段的 "and" 条件时, 各个字段出现的先后顺序要与多字段索引中的顺序相符
    7. 在 "where" 子句 中使用 "like" 时, 只有当通配符不出现在条件的最左端时才会使用索引
    8. 在 mysql 4.1 以上版本中, 避免使用子查询, 尽量使用 "内/外连接" 实现此功能
    9. 减少函数的使用, 如果可能的话, 尽量用单纯的表达式来代替
    10. 避免在 "where" 子句中, 对不同字段进行 "or" 条件查询, 将其拆分成多个单一字段的查询语句效率更高

附: Mysql 字段长度说明表
Mysql 字段长度说明
教程录入: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……
    咸宁网络警察报警平台