数据库优化操作策略

  1. 对于查询,尽量避免全表扫面,首先考虑在WHERE,ORDER BY 涉及的列上建立索引。
  2. 尽量避免WHERE字句中对字段进行 NULL 值判断,创建表时 NULL 是默认值,大多数时候应该使用 NOT NULL,或者使用一个特殊值,如:0,-1作为默认值。
  3. 尽量避免在 WHERE 字句中使用 !=, <>操作符,MYSQL只有对以下操作符才使用索引:<,<=, >, >=,BETWEEN,IN以及某些时候的 LIKE。
  4. 尽量避免 WHERE 语句中使用 OR 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用UNION合并查询。
  5. IN,NOT IN也要慎用,否则将导致全表扫描,对于连续数值,能用 BETWEEN 就不要用 IN,其他很多时候可以使用 EXISTS代替IN也是一个很好的选择。
  6. 设计表时,尽量使用数字型字段,若只含数值信息时得字段尽量不要设计为字符型,这会降低查询和连接得性能,并会增加存储的开销。
  7. 尽可能的使用 VARCHAR / NVARCHAR 代替 CHAR / NCHAR,这样,首先变长字段存储空间变小,可以节省存储空间,其次对于查询而言,在一个相对较小字段内搜索效率显然提高。
  8. 尽量不要使用 “ * ” 返回所有字段列,使用具体字段列代表 “ * ”,不要返回不用的字段。
  9. 当笛卡尔积查询时,多个表尽量使用别名(ALIAS),这样可以减少解析时间并减少那些由 COLUMN 歧义引起的语法错误。
  10. 在 IN 查询中,尽量将出现最频繁的值放在最前面,出现最少的放在最后面,减少判断的次数。
  11. 尽量使用 EXISTS 代替 SELECT COUNT(1) 来判断是否存在记录,COUNT函数只有在统计表中所有列函数时使用,而且COUNT(1) 比 COUNT(*) 更有效率。
  12. 还有更多……持续更新中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值