下载帝国网站管理系统4.7正式版
 帝国论坛技术交流区网络编程MySQL查询优化讲座之数据类型与效率
帝国CMS4.7(UTF-8)版正式发布
中客:空间产品随时可无条件退款!
测试:生成20万数据共用107分钟
《帝国下载系统》全面免费
Mysql大数据备份工具下载
帝国CMS4.7在线演示
帝国软件旗下新站 - 站长工具
帝国CMS 4.7正式版下载
主题:MySQL查询优化讲座之数据类型与效率 [加入收藏夹]   

keywords
用户头衔:版主

精华贴   :3
发贴数   :531
经验值   :1721
注册时间:2007-10-17
信息 搜索 好友 发送悄悄话 《帝国网站管理系统V4.7》基础教程下载】   [第 1 楼]
MySQL查询优化讲座之数据类型与效率
在可以使用短数据列的时候就不要用长的。如果你有一个固定长度的CHAR数据列,那么就不要让它的长度超出实际需要。如果你在数据列中存储的最长的值有40个字符,就不要定义成CHAR(255),而应该定义成CHAR(40)。如果你能够用MEDIUMINT代替BIGINT,那么你的数据表就小一些(磁盘I/O少一些),在计算过程中,值的处理速度也快一些。如果数据列被索引了,那么使用较短的值带来的性能提高更加显著。不仅索引可以提高查询速度,而且短的索引值也比长的索引值处理起来要快一些。

  如果你可以选择数据行的存储格式,那么应该使用最适合存储引擎的那种。对于MyISAM数据表,最好使用固定长度的数据列代替可变长度的数据列。例如,让所有的字符列用CHAR类型代替VARCHAR类型。权衡得失,我们会发现数据表使用了更多的磁盘空间,但是如果你能够提供额外的空间,那么固定长度的数据行被处理的速度比可变长度的数据行要快一些。对于那些被频繁修改的表来说,这一点尤其突出,因为在那些情况下,性能更容易受到磁盘碎片的影响。

  · 在使用可变长度的数据行的时候,由于记录长度不同,在多次执行删除和更新操作之后,数据表的碎片要多一些。你必须使用OPTIMIZE TABLE来定期维护其性能。固定长度的数据行没有这个问题。

  · 如果出现数据表崩溃的情况,那么数据行长度固定的表更容易重新构造。使用固定长度数据行的时候,每个记录的开始位置都可以被检测到,因为这些位置都是固定记录长度的倍数,但是使用可变长度数据行的时候就不一定了。这不是与查询处理的性能相关的问题,但是它一定能够加快数据表的修复速度。

  尽管把MyISAM数据表转换成使用固定长度的数据列可以提高性能,但是你首先需要考虑下面一些问题:

  · 固定长度的数据列速度较快,但是占用的空间也较大。CHAR(n)列的每个值(即使是空值)通常占n个字符,这是因为把它存储到数据表中的时候,会在值的后面添加空格。VARCHAR(n)列占有的空间较小,因为只需要分配必要的字符个数用于存储值,加上一两个字节来存储值的长度。因此,在CHAR和VARCHAR列之间进行选择的时候,实际上是时间与空间的对比。如果速度是主要的考虑因素,那么就使用CHAR数据列获取固定长度列的性能优势。如果空间很重要,那么就使用VARCHAR数据列。总而言之,你可以认为固定长度的数据行可以提高性能,虽然它占用了更大的空间。但是对于某些特殊的应用程序,你可能希望使用两种方式来实现某个数据表,然后运行测试来决定哪种情况符合应用程序的需求。




YMJY.COM 域名交易
QQ:1974889 帝国CMS交流群:57212786
2008-03-05 09:12:11 已设置保密 顶部 回复 引用 报告 编辑 删除

luring
用户头衔:进士

精华贴   :0
发贴数   :1657
经验值   :4229
注册时间:2007-02-12
信息 搜索 好友 发送悄悄话 《帝国网站管理系统V4.7》零基础实例入门教程】   [第 2 楼]

xuexi le



不断学习 交流QQ群:5834465
稀饭
女生窝窝风光无限
女生宿舍,男人都爱看
2008-03-05 13:27:39 已设置保密 顶部 回复 引用 报告 编辑 删除

零距离
用户头衔:书生

精华贴   :0
发贴数   :80
经验值   :237
注册时间:2007-12-26
信息 搜索 好友 发送悄悄话 《帝国网站管理系统V4.7》基础教程下载】   [第 3 楼]





2008-03-06 13:34:42 已设置保密 顶部 回复 引用 报告 编辑 删除

zhs05
用户头衔:秀才

精华贴   :0
发贴数   :266
经验值   :521
注册时间:2008-05-02
信息 搜索 好友 发送悄悄话 《帝国网站管理系统V4.7》零基础实例入门教程】   [第 4 楼]

谢楼主分享了



109数据 1G高速双线空间+200M数据库 298元 免费预装帝国CMS www.109idc.com QQ:340416556
2008-05-11 17:41:03 已设置保密 顶部 回复 引用 报告 编辑 删除


快速回复
内容

使用EBB代码
使用smile代码
显示签名
自动分析url
自动分析img
表情                   
                
    (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1