数据库优化方案
- 优化索引,sql语句,分析慢查询
- 设计表的时候严格按照数据库设计规范来设计数据库
- 使用缓存,把京城访问并且不需要经常变化的数据放在缓存中,能够节约磁盘IO
- 优化硬件,采用ssd,使用磁盘队列技术(RAID0, RAID1,RAID5)
- 采用mysql自带的表分区技术,把数据分析分成不同文件,能够磁盘的读写效率
6.垂直分表,把一些不经常读的数据放在一张表当中,节约磁盘IO - 主从分离读写,采用主从复制把数据库的读操作和写操作分离开来
- 分库分表分机器,数据量特别大的时候,主要的原理是数据路由
- 选择合适的表引擎,参数上的优化
- 进行架构级别的缓存,静态化和分布式
- 不采用全文检索
- 采用更快的存储方恨少,例如nosql存储经常访问的数据
优化数据库的查询效率
- 存储引擎的选择,如果数据表需要食物处理,应该考虑Innodb,因为它完全符合ACID的特性,如果不需要食物处理,使用默认存储引擎MyISAM是比较明智的
- 分表分库主从
- 对查询进行优化,要尽量避免全表扫描,首先应考虑在shere以及orderby涉及的列上建立索引
- 应尽量避免在where子句当中使用,不等于或者大于小于操作符,否则将导致引擎放弃使用索引而进行全表扫描
- 应尽量避免在where子句当中使用null值判断,否则将导致引擎放弃使用索引而进行全表扫描
- 应尽量避免在where子句当中使用or的判断,如果一个字段有索引,一个字段没有索引,将会导致引擎放弃使用索引而进行全表扫描
- update语句如果只改一两个字段,不要update全部字段,否则频繁调用,会引起明显的性能消耗,同时带来的大量的日志
- 对于多张数据量的表进行join,要先分页在做join,否则逻辑读写高,性能差