您当前的位置: 首页 > 数据库教程 > MySQL教程 > 面试题-MYSQL的优化

面试题-MYSQL的优化

作者:不详 来源:网络 发布时间: 2010-05-07 22:00 点击:
现在大概列出如下:(望各位补充) 1.数据库的设计 尽量把数据库设计的更小的占磁盘空间. 1).尽可能使用更小的整数类型.(mediumint就比int更合适). 2).尽可能的定义字段为notnull,除非这个字段需要null. 3).如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格

面试题-MYSQL的优化

  现在大概列出如下:(望各位补充)
  
  1.数据库的设计
  
  尽量把数据库设计的更小的占磁盘空间.
  
  1).尽可能使用更小的整数类型.(mediumint就比int更合适).
  
  2).尽可能的定义字段为notnull,除非这个字段需要null.
  
  3).如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char.
  
  4).表的主索引应该尽可能的短.这样的话每条纪录都有名字标志且更高效.
  
  5).只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段.如果总是需要用到很多字段,首先就应该多复制这些字段,使索引更好的压缩。
  
  6).所有数据都得在保存到数据库前进行处理。
  
  7).所有字段都得有默认值。
  
  8).在某些情况下,把一个频繁扫描的表分成两个速度会快好多。在对动态格式表扫描以取得相关记录时,它可能使用更小的静态格式表的情况下更是如此。
  
  2.系统的用途
  
  1).尽量使用长连接.
  
  2).explain复杂的SQL语句。
  
  3).如果两个关联表要做比较话,做比较的字段必须类型和长度都一致.
  
  4).LIMIT语句尽量要跟orderby或者distinct.这样可以避免做一次fulltablescan.
  
  5).如果想要清空表的所有纪录,建议用truncatetabletablename而不是deletefromtablename.
  
  6).能使用STOREPROCEDURE或者USERFUNCTION的时候.
  
  7).在一条insert语句中采用多重纪录插入格式.而且使用loaddatainfile来导入大量数据,这比单纯的indert快好多.
  
  8).经常OPTIMIZETABLE来整理碎片.
  
  9).还有就是date类型的数据如果频繁要做比较的话尽量保存在unsignedint类型比较快。
  
  3.系统的瓶颈
  
  1).磁盘搜索.
  
  并行搜索,把数据分开存放到多个磁盘中,这样能加快搜索时间.
  
  2).磁盘读写(IO)
  
  可以从多个媒介中并行的读取数据。
  
  3).CPU周期
  
  数据存放在主内存中.这样就得增加CPU的个数来处理这些数据。
  
  4).内存带宽
  
  当CPU要将更多的数据存放到CPU的缓存中来的话,内存的带宽就成了瓶颈.

分享到:
本文"面试题-MYSQL的优化"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4