美文网首页我爱编程
《深入浅出MySQL》23章<应用优化>读书笔记

《深入浅出MySQL》23章<应用优化>读书笔记

作者: 雨醉风尘 | 来源:发表于2018-04-13 17:06 被阅读58次

1:使用数据库连接池

  • 什么是数据库连接池?

    • 数据库连接池(Connection pooling)是 程序启动时 建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。
  • 为什么要使用数据连接池?

    • 通过数据库连接池可以直接将某个数据连接对象分配给应用使用,由于数据连接对象是程序初始化时存放在连接池中,这时直接使用就省去了 创建新连接 所耗费的资源。连接返回后,本次访问将连接交还给 “连接池” 以供新的访问使用。
  • 数据库连接池运行机制

    • (1) 程序初始化时创建连接池
    • (2) 使用时向连接池申请可用连接
    • (3) 使用完毕,将连接返还给连接池
    • (4) 程序退出时,断开所有连接,并释放资源
    传统访问数据库模式
    image
    数据库连接池访问数据库模式
    image

感谢 && 参考文章

数据库连接池的理解和使用

谈谈数据库连接池的原理

PHP 设计模式系列 - 对象池模式(Object Pool)


2:减少对MySQL的访问

  • 2.1:避免对同一数据做重复查询(减少数据库查询访问

  • 2.2:使用查询缓存(Query Cache

    • 作用:存储 select 查询的文本以及相应的结果。如果之后收到一个 相同的查询。服务器会从 查询缓存 重新得到查询结果,而不再需要 解析执行 查询

    • 查询缓存 的使用对象是 更新不频繁 的表;当表更改(数据 || 结构)后,查询缓存 值相关条目将被清空。

    • 查询缓存查看

    mysql> show variables like '%query_cache%';
    
    #开启查询缓存
    mysql> set session query_cache_type = ON;
    
    QUERY_CACHE参数及开启.png
  • 扩展-MySQL体系结构
MySQL体系结构.png

2.3:增加 Cache 层(应用层实现)


3:负载均衡(Load Balance)

  • 3.1:主从复制,读写分离

  • 3.2:使用分布式数据库架构


4:其他优化措施

  • 4.1:对于使用MyISAM的数据表,定期执行 optimize table tableName 操作。

    • 注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。
  • 4.2:充分使用列 存在默认值 的事实。只有当插入值不同与默认值时,才明确插入值。因为这会减少 MySQL 所做的 语法分析 从而提高插入速度。

  • 4.3:表的非主键字段尽量不要使用 自增长变量

《深入浅出MySQL 数据库开发 优化与管理维护 第2版》

相关文章

网友评论

    本文标题:《深入浅出MySQL》23章<应用优化>读书笔记

    本文链接:https://www.haomeiwen.com/subject/kyqhkftx.html