• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql应用中常用到的优化

mysql应用中常用到的优化

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql,优化等相关知识,希望本文的分享对您有所帮助
使用连接池
对于访问数据库来说,建立连接的代价比较昂贵,因此,我们有必要建立"连接池"以提高访问的性能。我们可以把连接当作对象或者设备,池中又有许多已经建立的连接,访问本来需要与数据库的连接的地方,都改为和池相连,池临时分配连接供访问使用,结果返回后,访问将连接交还。
减少对Mysql 的访问
避免对同一数据做重复检索:
应用中需要理清楚对数据库的访问逻辑,需要对相同表的访问,尽量集中在相同sql访问,一次提取结果,减少对数据库的重复访问。
使用mysql query cache:
作用:查询缓存存储SELECT 查询的文本以及发送给客户端的相应结果。如果随后收到一个相同的查询,服务器从查询缓存中重新得到查询结果,而不再需要解析和执行查询。
适用范围:不发生数据更新的表。当表更改(包括表结构和表数据)后,查询缓存值的相关条目被清空。
查询缓存的主要参数设置:
show variables like ‘%query_cache%’;
have_query_cache 表明服务器在安装使已经配置了高速缓存
query_cache_size 表明缓存区大小,单位为M
query_cache_type 的变量值从0 到2,含义分别为
0 或者off(缓存关闭)
1 或者on(缓存打开,使用sql_no_cache 的select 除外)
2 或者demand(只有带sql_cache 的select 语句提供高速缓存)
在SHOW STATUS 中,你可以监视查询缓存的性能:
变量含义
Qcache_queries_in_cache 在缓存中已注册的查询数目
Qcache_inserts 被加入到缓存中的查询数目
Qcache_hits 缓存采样数数目
Qcache_lowmem_prunes 因为缺少内存而被从缓存中删除的查询数目
Qcache_not_cached 没有被缓存的查询数目( 不能被缓存的, 或由于
QUERY_CACHE_TYPE)
Qcache_free_memory 查询缓存的空闲内存总数
Qcache_free_blocks 查询缓存中的空闲内存块的数目
Qcache_total_blocks 查询缓存中的块的总数目
加cache层:
Cache(高速缓存)、Memory(内存)、Hard disk(硬盘)都是数据存取单元,但存取速度却有很大差异,呈依次递减的顺序。对于CPU 来说,它可以从距离自己最近的Cache 高速地存取数据,而不是从内存和硬盘以低几个数量级的速度来存取数据。而Cache 中所存储的数据,往往是CPU 要反复存取的数据,有特定的机制(或程序)来保证Cache 内数据的命中率(Hit Rate)。因此,CPU 存取数据的速度在应用高速缓存后得到了巨大的提高。
因为将数据写入高速缓存的任务由Cache Manager 负责,所以对用户来说高速缓存的内容肯定是只读的。需要你做的工作很少,程序中的SQL 语句和直接访问DBMS 时没有分别,返回的结果也看不出有什么差别。而数据库厂商往往会在DB Server 的配置文件中提供与Cache 相关的参数,通过修改它们,可针对我们的应用优化Cache 的管理。

更多相关文章请关注微课江湖()!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05SQL SERVER 2008 无法附加数据库的解决方法
  • 2018-12-05ORACLE数据库查看执行计划的方法
  • 2018-12-05DriverManager连接mysql数据库在实际开发中使用
  • 2018-12-05mysql日期和时间类型
  • 2018-12-05MySQL中binlog日志文件的详细介绍
  • 2018-12-05Mysql一些复杂的sql语句(查询与删除重复的行)
  • 2018-12-05通过备份记录获取数据库的增长情况
  • 2018-12-05sql注入实例以及如何防sql注入
  • 2017-05-11MYSQL同步 Slave_IO_Running: No 或者Slave_SQL_Running: No的解决方法[已测]
  • 2018-12-05mysql 动态生成测试数据

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql中的锁问题
    • 设置SQLServer数据库中某些表为只读的多种方法分享
    • 游标遍历的内容推荐
    • Oracle存储过程for语句用法
    • sysbench对mysql压力测试的详细教程_MySQL
    • mysql子查询是什么?mysql数据库子查询实际使用示例
    • MySQL高级十五——表的分区
    • Ubuntu下启动、停止、重启MySQL,查看错误日志命令大全
    • MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)
    • Oracle时间日期操作方法小结第1/2页

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有