Java培训实战教程之mysql优化

  Java培训过程中精点、难点知识解析

  1. mysql引擎1.1. 引擎类型MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。innoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同。MERGE表本身没有数据,对MERGE类型的表进行查询、更新、删除的操作,就是对内部的MyISAM表进行的。

  2. 如何选择合适的存储引擎选择标准: 根据应用特点选择合适的存储引擎,对于复杂的应用系统可以根据实际情况选择多种存储引擎进行组合.

  下面是常用存储引擎的适用环境:

  1.MyISAM:默认的 MySQL 插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一

  2.InnoDB:用于事务处理应用程序,具有众多特性,包括ACID 事务支持。

  3.Memory:将所有数据保存在 RAM 中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。

  4.Merge:允许 MySQL DBA 或开发人员将一系列等同的MyISAM 表以逻辑方式组合在一起,并作为 1 个对象引用它们。

  对于诸如数据仓储等 VLDB 环境十分适合设置高速缓存注:可以通过order by语句测试缓存,order by语句执行速度慢!

  设置和查询高速缓存大小SET GLOBAL query_cache_size = 41984; #40KSHOW VARIABLESLIKE query_cache_size +------------------+-------+| Variable_name | Value |+------------------+-------+| query_cache_size | 41984 |+------------------+-------+2.1.3. 缓存开启的方式查看是否开启SHOW VARIABLES LIKE query_cache_type SET SESSION query_cache_type =ON;如果查询缓存大小设置为大于0,query_cache_type变量影响其工作方式。这个变量可以设置为下面的值:0或OFF:将阻止缓存或查询缓存结果。

  1或ON:将允许缓存,以SELECTSQL_NO_CACHE开始的查询语句除外。2或DEMAND:仅对以SELECTSQL_CACHE开始的那些查询语句启用缓存。出自Java培训GLOBAL:设置所有链接的客户端session:设置单个客户端2.1.4. 设置缓存结果的最大值最小值如果不设置缓存的上线下线,查询结果过大将不会缓存。查询上线:SHOW VARIABLES LIKE query_cache_limit 设置上下线:SET GLOBAL query_cache_limit=10485760; #10MSET GLOBAL query_cache_min_res_unit=41984;2.1.5. 查询高速缓冲状态和维护可以使用下面的语句检查MySQL服务器是否提供查询缓存功能:SHOW VARIABLES LIKE have_query_cache +------------------+-------+| Variable_name | Value |+------------------+-------+| have_query_cache | YES |+------------------+-------+FLUSH QUERY CACHE:语句来清理查询缓存碎片以提高内存使用性能。

  该语句不从缓存中移出任何查询。RESET QUERY CACHE:语句从查询缓存中移出所有查询。FLUSH TABLES语句也执行同样的工作。SHOW STATUS:为了监视查询缓存性能,使用SHOWSTATUS查看缓存状态变量,例如:mysql SHOW STATUS LIKE Qcache% +-------------------------+--------+| Qcache_free_blocks | 36 || Qcache_free_memory | 138488 || Qcache_hits | 79570 || Qcache_inserts | 27087 || Qcache_lowmem_prunes | 3114 || Qcache_not_cached | 22989 || Qcache_queries_in_cache | 415 || Qcache_total_blocks | 912 |+-------------------------+--------+QCACHE_free_blocks:空闲内存块的数量。QCACHE_free_memory:空闲内存的大小。QCACHE_hits:查询缓存被访问的次数(命中数)。

  QCACHE_inserts:加入到缓存的查询数量。QCACHE_lowmem_prunes:由于内存较少从缓存删除的查询数量。QCACHE_not_cached:非缓存查询数(不可缓存,或由于query_cache_type设定值未缓存)。Qcache_queries_in_cache:登记到缓存内的查询的数量。Qcache_total_blocks:查询缓存内的总块数。

  2.2. 高速缓存语句要求下面的两个查询被查询缓存认为是不相同的:SELECT * FROM tbl_nameSelect * from tbl_name查询必须是完全相同的(逐字节相同)才能够被认为是相同的。

  2.3. 不缓存的语句如果一个查询包含下面函数中的任何一个,它不会被缓存:BENCHMARK()CONNECTION_ID()CURDATE()CURRENT_DATE()CURRENT_TIME()CURRENT_TIMESTAMP()CURTIME()DATABASE()带一个参数的ENCRYPT()FOUND_ROWS()GET_LOCK()LAST_INSERT_ID()LOAD_FILE()MASTER_POS_WAIT()NOW()RAND()RELEASE_LOCK()SYSDATE()不带参数的UNIX_TIMESTAMP()USER()Java培训学院始终认为你将会是最优秀的存在,看好你,加油!!!

叩丁狼—Java培训实战教程之mysql优化相关推荐

  1. java+mysql性能优化_Java培训实战教程之mysql优化

    Java培训实战教程之mysql优化 更新时间:2015年12月29日13时30分 来源:传智播客Java培训学院 浏览次数: 1.   mysql引擎 1.1.  引擎类型 MySQL常用的存储引擎 ...

  2. 叩丁狼分享—培训实战教程之浅谈过滤器Filter

    一.过滤器的基本概念Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应. 主要用于对HttpServletRequest 进行预处理,也可以对Htt ...

  3. Java培训实战教程之叩丁狼JavaNIO分享

    Java培训实战教程之叩丁狼JavaNIO分享 Java中的I/O流或者输入/输出流是指数据在本地文件或网络中以流的方式进行传输.新的输入/输出(NIO)库是在JDK1.4版本中引入的.NIO弥补了原 ...

  4. JAVA期末考广东科技学院,我是叩丁狼广州Java老学员,我来说说自己的故事

    我后来也推荐了一个朋友过来培训,他是我之前船厂的同事,年纪比我还要大点.他很早就想转行做编程了,也问了身边很多朋友,最后选了叩丁狼.不过不是我主动去游说的,是他各方打听做了对比后做出的选择. 在这里, ...

  5. 卖任小龙java视频,任小龙Java大神之路(第九季 SpringMVC)视频教程叩丁狼教育出品...

    大家好咱们开始上课,在正式上课之前咱们先花点时间来对我们接下来的这个课程,然后做一个大概的一个介绍 之前咱们讲的这个spring帝国,讲了十分的核心,对吧?然后在当初的时候咱们还有一块内容是没有讲到的 ...

  6. audio h5 src 变了之后_我在叩丁狼学H5

    #我在叩丁狼学H5#最近接触到了一些前端框架,像Vue.js,React,发现小程序的框架体系跟它们很像.它们都推崇模块化,组件化,数据与元素绑定.这样没有繁琐的DOM操作,组件之间完全分离,样式和逻 ...

  7. java for 字母金字塔_扣丁学堂Java培训简述如何用C#随机数生成字母金字塔

    本篇文章扣丁学堂Java培训小编给读者们简单分享一下如何用C#随机数生成字母金字塔,具有一定的参考价值,感文中有详细的代码列出供感兴趣的小伙伴参考,想要了解的小伙伴就随小编来看一下具体内容吧. 1.代 ...

  8. 4. Vue入门实战教程之vue-element-admin后端API适配

    Vue入门实战教程之vue-element-admin后端API适配 1.1 前言 1.2 分析框架 1.1.1 第一个接口:根据账号密码登陆获取token 1.1.2 第二个接口:根据token获取 ...

  9. Docker最全教程之MySQL容器化 (二十四)

    Docker最全教程之MySQL容器化 (二十四) 原文:Docker最全教程之MySQL容器化 (二十四) 前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过 ...

最新文章

  1. Drug Target Review | 利用AI发现和设计药物
  2. jittor和pytorch生成网络对比之bicyclegan
  3. xenapp 发布到外网更改公网IP。
  4. mpvue template compiler 中文版教程
  5. TDMA 时分多路复用
  6. java spring入门小程序_springMVC学习笔记(二)-----注解和非注解入门小程序
  7. 永洪报表工具_2020年最值得推荐的五大BI工具
  8. pom.xml中依赖的optionaltrue/optional标签
  9. 在Linux上离线安装SQL Server 2017
  10. Redis数据结构04-SortedSet
  11. Java annotation 自定义注释@interface的用法 转载记录
  12. Java下载及环境配置
  13. 为什么不使能中断,中断标志位也会被置一
  14. android 经纬度 谷歌,android:GPS获取location经纬度并用谷歌解析为地理位置名称
  15. C/C++游戏项目完整教程:《坦克大战》
  16. sqlserver转mysql_数据库 SQLServer转MySQL数据库
  17. 个人微信小程序快速赚攻略
  18. 下载refseq序列
  19. 【YBT高效进阶】1基础算法/1逆推算法/2奇怪汉诺塔
  20. 【专题5: 硬件设计】 之 【19.案例二:循环泵,滤波电容放电电路】

热门文章

  1. serveless 思想 Midway.js 框架使用教程(四)
  2. java中stringtokenizer的用法_Java中 StringTokenizer 的用法
  3. Mlab - 改变物体外观及鼠标选取操作
  4. 提高客户转介绍率的7个方法,让你的客户成为你的推广大使!
  5. 【高效运维】SSH远程执行命令
  6. 小鬼难缠--python小bug备忘
  7. String类 常用方法案例
  8. python web自动化测试入门与实战杨定佳pdf_Python Web自动化测试入门与实战
  9. python灭霸的响指
  10. 【热门主题:5代火影黑色主题】