数据库优化措施

本文为yanjiangbo原创@2012-03-07,请尊重版权,转载请说明出处http://blog.csdn.com/yanjiangbo 

如果让你来优化数据库,你会从哪几个方面考虑?以下是我考虑的一些方面,总有一款适合你吐舌头

数据库设计方面
  1. 尽量在设计字段的时候,选取合适的字段类型,能用char,就不要用varchar,能用enum,就不要用char,能用smallint就不要用int,少用text字段等等;
  2. 建立合适的索引,但不可过多,对于那些经常查询的字段,建立索引,对于哪些经常用不到的字段不必建立,切忌:索引过多很容易造成死锁;
  3. 在数据表建立的时候,运行适当地数据冗余,这样就可以避免一些join操作,以提高查询效率;
  4. 建立快慢表,对经常查询的数据放在快表里,对于不经常用到的历史数据放在慢表里,数据适当分离,提高查询效率;
  5. 在写select语句时,尽量少用order by、group by等聚合性语句,同时尽量所查既所需,不要每次查询都是select *;
  6. 用join查询代替子查询,尽量少使用like关键字和通配符;
  7. 选用适合、恰当的数据库引擎,例如对于频繁查询但不经常更新的表用MYISAM引擎,对于需要关系型的表用INNODB引擎(仅针对mysql DB);
  8. 分表,在表的数据量达到一定程度后,做分表操作;
数据库架构方面
  1. 读写分离(可以通过dbproxy实现);
  2. 数据库主从,同时主库只允许write,从库read only,同时一主可以多从;
  3. 数据库之上架一个memcached缓存服务器,把一些select的结果缓存起来,只有当数据库做了update操作时才去让缓存失效,这样会大大降低数据库的查询压力;
  4. 对于数据库的宿主机,尽量用ssd硬盘,因为ssd硬盘的io性能比普通硬盘快3倍左右;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值