MySQL/MariaDB---查询缓存与存储引擎
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,查询缓存"查询缓存" ---是把将查到的结果缓存下载,如果查询语句相同,则直接把缓存的结果返回.如果应用程序在某一个场景 多次需要查询,且不需要经常更新,则使用查询缓存可以有一定的性能提升。 如图
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
服务器获取访问mac地址
廊坊市有赞网络技术有限公司
数据库多语言设计
山东高速软件开发
财政局网络安全基本情况描述
项目申报书范例网络安全
上海至寻网络技术有限公诉
网络安全行业做什么
昌都网络技术哪家专业
mc1.0服务器
游戏软件开发技术培训
河北移动网络技术类专业
新华互联网科技学院暑假
服务器硬盘故障有哪些
数据库排名及发展趋势
信阳网络技术厂家报价
绩夕网络技术怎么样
易利购系统软件开发
江阴信息软件开发
数据库技术大几学
数据库系统管理的意义
土壤数据库
数据库很大怎么缩小
天津服务器电源售价
gis制图数据库自动同步技术
广州服务器托管价格
青岛市网络安全公益广告
服务器停电无法自启动
发生网络安全时间 应当
浦发银行软件开发员待遇