MySQL/MariaDB---查询缓存与存储引擎
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,查询缓存"查询缓存" ---是把将查到的结果缓存下载,如果查询语句相同,则直接把缓存的结果返回.如果应用程序在某一个场景 多次需要查询,且不需要经常更新,则使用查询缓存可以有一定的性能提升。 如图
千家信息网最后更新 2024年09月22日MySQL/MariaDB---查询缓存与存储引擎
查询缓存
"查询缓存" ---是把将查到的结果缓存下载,如果查询语句相同,则直接把缓存的结果返回.
如果应用程序在某一个场景 多次需要查询,且不需要经常更新,则使用查询缓存可以有一定的性能提升。 如图所以可以查看是否开启了缓存功能
query_cache_type的值为on;表示已开启了缓存功能
query_cache_type:是否开启缓存功能,取值为ON, OFF, DEMAND,表示 已启用,已禁用,按照需要缓存,设置在my.cnf中即可。 query_cache_min_res_unit:查询缓存中内存块的最小分配单位,默认4k, 较小值会减少浪费,但会导致更频繁的内存分配操作,较大值会带来浪费,会导 致碎片过多,内存不足 query_cache_limit:单个查询结果能缓存的最大值,默认为1M, 对于查询结果过大而无法缓存的语句,建议使用SQL_NO_CACHEquery_cache_size:查询缓存总共可用的内存空间;单位字节,必须是1024的整数倍,最小值40KB,低于此值有警报query_cache_wlock_invalidate:如果某表被其它的会话锁定,是否仍然可以 从查询缓存中返回结果,默认值为OFF, 表示可以在表被其它会话锁定的场景中继续从缓存返回数据; ON则表示不允许
SELECT语句的缓存控制
SQL_CACHE:显式指定存储查询结果于缓存之中SQL_NO_CACHE:显式查询结果不予缓存query_cache_type参数变量query_cache_type的值为OFF或0时,查询缓存功能关闭query_cache_type的值为ON或1时,查询缓存功能打开,SELECT的结果符合缓存条件即会缓存,否则,不予缓存,显式指定SQL_NO_CACHE,不予缓存,此为默认值 query_cache_type的值为DEMAND或2时,查询缓存功能按需进行,显式指定SQL_CACHE的SELECT语句才会缓存;其它均不予缓存 # 查询缓存相关的状态变量: SHOW GLOBAL STATUS LIKE 'Qcache%';
Qcache_free_blocks:处于空闲状态 Query Cache中内存 Block 数 Qcache_total_blocks:Query Cache 中总Block ,当Qcache_free_blocks相对此值较大时,可能用内存碎片,执行FLUSH QUERY CACHE清理碎片 Qcache_free_memory:处于空闲状态的 Query Cache 内存总量 Qcache_hits:Query Cache 命中次数 Qcache_inserts:向 Query Cache 中插入新的 Query Cache 的次数,即没有命中的次数 Qcache_lowmem_prunes:记录因为内存不足而被移除出查询缓存的查询数 Qcache_not_cached:没有被 Cache 的 SQL 数,包括无法被 Cache 的 SQL 以及由于 query_cache_type 设置的不会被 Cache 的 SQL语句 Qcache_queries_in_cache:在 Query Cache 中的 SQL 数量
----------------
存储引擎
MyISAM引擎特点不支持事务表级锁定读写相互阻塞,写入不能读,读时不能写只缓存索引不支持外键约束不支持聚簇索引读取数据较快,占用资源较少不支持MVCC(多版本并发控制机制)高并发崩溃恢复性较差MySQL5.5.5前默认的数据库引擎
----------------
MyISAM存储引擎 --适用场景
只读(或者写较少)、表较小(可以接受长时间进行修复操作) MyISAM引擎文件 tbl_name.frm 表格式定义 tbl_name.MYD 数据文件 tbl_name.MYI 索引文件
----------------
InnoDB引擎特点
行级锁支持事务,适合处理大量短期事务读写阻塞与事务隔离级别相关可缓存数据和索引支持聚簇索引崩溃恢复性更好支持MVCC高并发从MySQL5.5后支持全文索引从MySQL5.5.5开始为默认的数据库引擎
InnoDB数据库文件
所有InnoDB表的数据和索引放置于同一个表空间中表空间文件:datadir定义的目录下数据文件:ibddata1, ibddata2, ...每个表单独使用一个表空间存储表的数据和索引启用:innodb_file_per_table=ON两类文件放在数据库独立目录中数据文件(存储数据和索引):tb_name.ibd表格式定义:tb_name.frm 管理存储引擎查看mysql支持的存储引擎 show engines;查看当前默认的存储引擎 show variables like '%storage_engine%';设置默认的存储引擎 vim /etc/my.conf [mysqld] default_storage_engine= InnoDB 查看库中所有表使用的存储引擎 show table status from db_name;查看库中指定表的存储引擎 show table status like ' tb_name '; show create table tb_name;设置表的存储引擎: CREATE TABLE tb_name(... ) ENGINE=InnoDB; ALTER TABLE tb_name ENGINE=InnoDB;
缓存
查询
引擎
数据
存储
索引
支持
内存
文件
结果
功能
语句
事务
数据库
空间
场景
次数
状态
碎片
最小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发负责人项目总结
网络安全指的是
挑战杯 电脑软件开发
台州网络安全执法案例
游戏服务器多久可以玩
网络安全稿件电厂
电脑无法与服务器文件同步
sql数据库 密码过期
的网络安全问题实例分析
数据库应用技术步骤
模板下载软件开发
数据库开发设备参数管理
打开别人的表格看不了数据库
六年级计算机网络安全
杨浦区会计网络技术备案
衢州制造软件开发工具
中指数据库 费用
云服务器 项目 数据安全吗
敢达争锋对决如何加入服务器
山南市公安局网络安全进校园活动
小麦加速服务器无法加速度
洛克王国宠物数据库源码
中国 服务器 镜像
网络安全信息意识手册
无线传感器网络技术分类
西南有没有网络安全教育基地
网络安全防范措施自查报告
怎么查数据库
国际安全与反恐主义数据库
开远计算机网络技术培训学校