监控mysql的存储引擎
监控mysql
显示进程状态变量
mysql> show variables like '%thread%';
+----------------------------+---------------------------+
| Variable_name | Value |
+----------------------------+---------------------------+
| innodb_file_io_threads | 4 |
| innodb_thread_concurrency | 8 |
| innodb_thread_sleep_delay | 10000 |
| max_delayed_threads | 20 |
| max_insert_delayed_threads | 20 |
| myisam_repair_threads | 1 |
| pseudo_thread_id | 2 |
| thread_cache_size | 0 |
| thread_handling | one-thread-per-connection |
| thread_stack | 262144 |
+----------------------------+---------------------------+
query cache
如果你使用的是myisam存储引擎的,query cache是一个最终的性能,他允许服务器在内存中缓存频繁使用的查询语句和查询结果,因此一个查询运行的越频繁,这个查询结果就越可能从缓存中得到,显然,从内存中读取数据比从硬盘上读取数据要快的多
通过have_query_cache变量查询query cache是否可用;
mysql> show variables like '%query_cache%';
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
have_query_cache 变量仅仅表示这个特性可用,query_cache_size 这个变量值为0,它将迅速关闭query cache ;
Query cache状态变量
mysql> show status like '%Qcache%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Qcache_free_blocks | 0 |
| Qcache_free_memory | 0 |
| Qcache_hits | 0 |
| Qcache_inserts | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 0 |
| Qcache_queries_in_cache | 0 |
| Qcache_total_blocks | 0 |
+-------------------------+-------+
8 rows in set (0.00 sec)
可以定期使用flush query cache 这个命令重整 querycache
,这样不会删除内存中的结果,但是允许重新组织内存以更好地3使用内存;
mysql> flush query cache;
Query OK, 0 rows affected (0.00 sec)
mysql性能
使用explain
mysql> explain select * from student where id>'901'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: student
type: ALL
possible_keys: PRIMARY
key: NULL
key_len: NULL
ref: NULL
rows: 5
Extra: Using where
1 row in set (0.00 sec)
看到该查询已经检测到了索引,但key为NULL,没有使用索引。
删除范围查询看看结果:
mysql> explain select * from student where id='901'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: student
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: const
rows: 1
Extra:
1 row in set (0.00 sec)
使用analyze table
可以为myisam和Innodb表更新主健分布,但不是使用于所有的引擎。
分析表并更新主健分布
mysql> analyze table student;
+----------------+---------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+----------------+---------+----------+----------+
| school.student | analyze | status | OK |
+----------------+---------+----------+----------+
1 row in set (0.00 sec)
通过show index查看索引的状态:
mysql> show index from student\G;
*************************** 1. row ***************************
Table: student
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 5
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
1 row in set (0.00 sec)
无论表何时发生重大的更新(例如批量加载数据),都应该执行这个命令,在这个操作过程中,系统必须要先给这个表设定一个锁。
使用optimize table
被频繁更新的表将很快变的支离破碎,并取决于存储引擎的不同,将会出现不同程度 的闲置空间和不理想的存储结构;
使用optimize table命令可以重构一个或多个表的数据结构;
mysql> optimize table student\G
*************************** 1. row ***************************
Table: school.student
Op: optimize
Msg_type: status
Msg_text: OK
1 row in set (0.00 sec)
无论表何时发生重大更新(例如大量删除和插入),都应该执行这个命令,这个操作用于优化数据元素排列结构,而且它比预期运行的时间长,这个操作适合在低负载时运行;
监控mysql的存储引擎的更多相关文章
- MySQL之四 存储引擎
1.介绍 存储引擎MySQL中的"文件系统" MySQL体系结构 InnoDB存储引擎介绍 My1SAM 和InnoDB区别 mysql MariaDB [(none)]> ...
- MYSQL的存储引擎一般只要哪些?
根据个人个人见解: MySQL的存储引擎(构成.安全.锁) Myisam:数据操作快速的一种引擎,支持全文检索.文件保存在数据库名称为目录名的 目录中,有3个文件,分别是表定义文件(.frm).数据文 ...
- MySQL常用存储引擎及如何选择
一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...
- mysql 的存储引擎介绍
在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? ...
- mysql数据库存储引擎及区别
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERAT ...
- mysql之存储引擎和文件配置
(查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...
- MySQL数据库----存储引擎
什么是存储引擎? 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操 ...
- MySql的存储引擎介绍
下面主要介绍InnoDB.MyISAM和MEMEORY三种存储引擎. InnoDB存储引擎 InnoDB遵循CNU通用公开许可(GPL)发行.InnoDB已经被一些重量级互联网公司所采用,如雅虎.Sl ...
- MySQL之存储引擎(表类型)的选择
和大部分的数据库不同,MySQL中有一个存储引擎的概念,用户可以根据数据存储的需求来选择不同的存储引擎.本次博客就来介绍一下MySQL中的存储引擎.MySQL版本 5.7.19. 概述 MySQL的存 ...
随机推荐
- 使用多个梯度下降的方式进行测试,同时使用ops.apply_gradient进行梯度的下降
1. ops = tf.train.GradientDescentOptimizer(learning_rate) 构建优化器 参数说明:learning_rate 表示输入的学习率 2.ops.co ...
- HTML技巧:怎样禁止图片拖动复制
用jQuery实现代码: <script> var imgs=$("img"); imgs.on("contextmenu",function(){ ...
- C语言转义字符表和ASCII码表
主要参考 http://www.51hei.com/mcu/4342.html 以及 https://www.cnblogs.com/jason207489550/p/6663444.html
- DPI的理解
DPI(Dots Per Inch,每英寸点数)是一个量度单位,用于点阵数码影像,指每一英寸长度中,取样.可显示或输出点的数目. DPI是打印机.鼠标等设备分辨率的度量单位.是衡量打印机打印精度的主要 ...
- 手动清空微信PC客户端数据
微信PC客户端,用久了之后,会产生大量数据,包括聊天记录.聊天图片.视频等等,非常占存储空间,除非很重要的聊天记录或文件,建议额外保存,其他的可以手动删掉就好,可以节省存储空间. 1.找到[C:\Us ...
- IFB
本文翻译自Linux官方IFB文档 IFB(中介功能块设备)是IMQ(中介队列设备)的继任者,IMQ从来没有被集成过,IFB拥有IMQ的优点,在SMP上更加清晰明了,并且代码量缩减了非常多,旧的中介设 ...
- 2019.03.30 Dialog demo 一个标准使用的dialog程序
PROGRAM zdemo_dialog. INCLUDE zdemo_dialogtop. INCLUDE zdemo_dialogo01. INCLUDE zdemo_dialogi01. INC ...
- CTF—WEB—sql注入之宽字节注入
宽字节注入 宽字节注入是利用mysql的一个特性,mysql在使用GBK编码(GBK就是常说的宽字节之一,实际上只有两字节)的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字 ...
- php配置 php-cgi.sock使用
PHP配置文件: [global]pid = /run/php-fpm/php-fpm.piderror_log = /var/log/php-fpm/php-fpm.loglog_level = n ...
- NOIp D1T1 小凯的疑惑
吐槽 果然让人很疑惑,这道题,对于我这种数学渣渣来说太不友好了,哪里想得到结论,猜也猜不到. 思路一 纯数学,见过的飞快切掉,没见过的就... 结论就是:已知$a,b$为大于$ 1 $的互质的正整数, ...