Python's Archiver

為方便港臺同胞閱覽,Python中國特別推出簡繁體內容轉換功能

xieaotian 发表于 2008-11-13 09:42

从书上摘录了一段有关数据库的优化给大家分享

查询过程中的优化:

1、尽量使用长连接,例如使用联合查询等。
2、尽量explain命令分析复杂的SQL语句
3、如果两个关联表要做比较,那么做比较的字段的类型和长度必须都一致。
3、LIMIT语句尽量要跟order by 或者 distinct,这样可以避免做一次full table scan(就是遍历全表呵呵)。
4、如果要清空表的所有记录,建议用truncate table tablename 而不是delete from table tablename。
5、在一条INSERT语句中采用多重记录插入格式,而且使用Load data infile 来导入大量数据,
      这比单纯地用INSERT快 很多。
6、经常优化数据表,整理碎片,经常进行数据库修复。
     因为有些系统因为停电、非法关机等会导致当前正在被操作的数据表损坏
7、还有就是DATE类型的数据如果频繁要做比较的话,则应尽量保存在unsigned INT类型下比较快

其他有关的优化:

数据库的优化还要注意一些问题,比如服务器环境。MYSQL的性能是与服务器环境息息相关的,有以下几点:

1、磁盘搜索;并行搜索,把数据分开存放到多个磁盘中,这样能加快搜索时间。
2、磁盘读写(IO);可以从多个媒介中并行的读取数据。
3、CPU周期。当CPU要将更多的数据存放到CPU的缓存中时,内存的带宽就成了瓶颈。


最后,再说下:
关于存储优化也出现了很多新技术。比如分表存储技术。分表存储技术也是为了减轻数据库压力,提高数据库效率、改善性能。
分表存储技术:将一个表分成几个表来存储数据。
就拿DZ这种论坛的版块来说,可以把每一个版块的帖子存在一个单独的表中,根据用户访问的版块来查询相应的表。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.