php-数据库优化

获取数据库的实时状态

mysql status;

正确使用索引

  • 对整个表不使用索引直接去搜索相关的内容称:全表索引;
  • 对于like模糊匹配查询,索引并不能起大多作用。尽量少使用like去查询。
  • 一次查询对于一个数据表只能使用一个索引,同个字段同时建立索引,多字段同时查询并不能起叠加效果,这时候就要用到组合索引啦。
  • explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。
  • 能使用联合索引的地方可以使用联合索引
  • 联合索引,order by ,group by都遵循最左前缀查询
  • 根据慢查询(需要在my.ini中配置相关设置)记录查询时间比较大的sql语句,并且优化他。
  • 索引会占用更大的磁盘空间,甚至比我们数据表还大。
  • 锁机制是影响数据库查询的一个重要原因。
  • 适当使用行锁,而不是锁定整个表。当然行锁也有缺陷,这不做 讨论。
  • 正确的使用查询缓存,也能提高mysql效率。
  • 反范式化设计。这个比较常用。比如一张门磁卡,用户表,如果一个用户一张卡,那么就把用户和卡写到一个表里。
  • 放弃关系型数据库。比如redis
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容