mysql 怎样查看mysql启用innodb innodb

扫描二维码: 已优化适合手机访问
&&★ 相关文章检查MySQL 是否开启InnoDB,以及如何开启 | 基于实例代码分步讲解 一站式学习Java |
您的浏览器版本过低。为保证最佳学习体验,
执行命令SHOW variables like 'have_%';在结果中的have_innodb,如果显示为YES,即表示启动了。 如果是NO或者DISABLED表示未启动。如果不存在也表示未启动。
首先执行命令停止mysqlnet stop mysql
定位到D:\tools\MYSQL\mysql-5.1.57-win32\data 目录下,找到这3个文件ib_logfile0ib_logfile1ibdata1备份后,删除掉注: D:\tools\MYSQL\mysql-5.1.57-win32 是我的安装目录,请自行调整
打开文件:D:\tools\MYSQL\mysql-5.1.57-win32\my.ini添加一行 default-storage-engine=InnoDB也许已经存在default-storage-engine=MyISAM像下面这样,注释掉即可#default-storage-engine=MyISAM注: D:\tools\MYSQL\mysql-5.1.57-win32 是我的安装目录,请自行调整
执行命令 net start
把你的代码复制到下面区域
根据练习目标尽量自己实现代码效果,期间会碰到疑问,难题,和自己不懂的地方,这些都是必要的过程
完成过程中,碰到无法解决的问题,带着疑问,查看答案,分析答案的解决思路
依然有不明白的地方,点开视频讲解,带着疑问,听视频讲解有问题的部分
理解后,再从头做一遍,把有疑问的地方都捋清楚
最后再总结一边,总结思路,总结解决办法,以后遇到类似的问题,怎么处理
把这时的想法,思路,研究都记录下来,等全部学完了,再回过头来巩固和理解,学习效果就会很好,知识点掌握得也牢固
请至少填写一项
答案时间:
请至少填写一项
答案时间:
请至少填写一项
提问之前请月魔zhi蕾 的BLOG
用户名:月魔zhi蕾
文章数:53
访问量:36579
注册日期:
阅读量:5863
阅读量:12276
阅读量:414288
阅读量:1101956
51CTO推荐博文
&mysql支持多种存储引擎,在处理不同类型的应用时,可以通过选择使用不同的存储引擎提高应用的效率,或者提供灵活的存储。&mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。&查看mysql中表的存储引擎类型有几个方法,具体如下:1.show table status from 数据库库名 where name='表名',例:mysql& SHOW TABLE STATUS from mytest where Name='test';+------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |(省略部分结果)+------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)| test | MyISAM | & & &10 | Fixed & & &| & &0 | & & & & & & &0 | & & & & & 0 |(省略部分结果)+------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)1 row in set (0.02 sec)mysql&看到Engine对应的值是MyISAM2.mysqlshow -u 数据库登录账号用户名 -p'数据库登录账号密码' --status 数据库库名 表名 mysqlshow &-uroot -p'mypassword' & --status mytest testDatabase:mytest &Wildcard: test+------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |(省略部分结果)+------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)| test | MyISAM | & & &10 | Fixed & & &| & &0 | & & & & & & &0 | & & & & & 0 |(省略部分结果)+------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)可以看到Engine对应的值是MyISAM3.show create table 表名这种方法有时候是不准确的,例:服务器配置没有启用InnoDB存储引擎,在创建表的时候设置的是InnoDB存储引擎,创建表时的命令:mysql& crQuery OK, 1 row affected (0.02 sec)mysql&Database changedmysql& CREATE TABLE test (-& id INT(11) default NULL auto_increment,-& s char(60) default NULL,-& PRIMARY KEY (id)-& ) ENGINE=InnoDB;Query OK, 0 rows affected, 2 warnings (0.06 sec)mysql&此时使用上面的方法1和2查看会看到test表使用的引擎是MyISAM,但是使用3查看会看到如上的结果。而实际上test表使用的存储引擎是MyISAM的。4.查看mysql服务器是否启用InnoDB存储引擎:返回结果是: &"InnoDB" & 对应的 &"Support"等于 “NO” &,表示未启用 &InnoDB &存储引擎。mysql& SHOW &ENGINES;+------------+---------+----------------------------------------------------------+(省略部分结果)| Engine & & | Support | Comment & & & & & & & & & & & & & & & & & & & & & & & & &|(省略部分结果)+------------+---------+----------------------------------------------------------+(省略部分结果)| InnoDB & & | NO & & &| Supports transactions, row-level locking, and foreign keys|(省略部分结果)| MRG_MYISAM | YES & & | Collection of identical MyISAM tables & & & & & & & & &|(省略部分结果)| BLACKHOLE &| YES & & | /dev/null storage engine (anything you write to it disa(省略部分结果)| CSV & & & &| YES & & | CSV storage engine & & & & & & & & & & & & & & & & & & & |(省略部分结果)| MEMORY & & | YES & & | Hash based, stored in memory, useful for temporary tables|(省略部分结果)| FEDERATED &| NO & & &| Federated MySQL storage engine & & & & & & & & & & & & & |(省略部分结果)| ARCHIVE & &| YES & & | Archive storage engine & & & & & & & & & & & & & & & & & |(省略部分结果)| MyISAM & & | DEFAULT | Default engine as of MySQL 3.23 with great performance|(省略部分结果)+------------+---------+----------------------------------------------------------+(省略部分结果)8 rows in set (0.00 sec)mysql&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)查看 InnoDB表中每个的索引高度
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
| 时间 2016 |
作者 红领巾 ]
这个问题最早在Inside君的IMG微信群中进行讨论,经过为期2周的讨论,结合群内小伙伴的集体智慧,终于克服了这个问题。此问题的起源是很多小伙伴都会问Inside君,如何查看InnoDB的索引树的高度,在我的书中 《技术内幕:InnoDB存储引擎》 中,我写到一般树的高度在3~4层之间,但是并没有给出证明的手段或者方法。InnoDB也没有提供相应的视图进行查看。其实明白InnoDB索引的构造,就能迅速得出索引的高度。
InnoDB是索引组织表,每个页都包含一个PAGE_LEVEL的信息(见上图右半部分),用于表示当前页所在索引中的高度。默认叶子节点的高度为0,那么root页的PAGE_LEVEL+ 1就是这棵索引的高度。接下去的问题就是怎样得到一张表所有索引的Root页所在的位置呢?看过Inside君的 《MySQL技术内幕:InnoDB存储引擎》 都知道(space,3)这个页是聚集索引的root,并且在 《MySQL内核:InnoDB存储引擎 卷1》 中也已经说过,Root页的位置通常是不会更改的。那么其他索引的Root页所在的位置呢?
其实官方提供了内部视图来查看每个索引的Root页,但可惜的是大部分DBA们都不知道,亦或许是因为觉得没啥用吧,通过下面的SQL语句可以查出某这表对应索引的Root页:
SELECTb.name, a.name, index_id, type, a.space, a.PAGE_NOFROMinformation_schema.INNODB_SYS_INDEXES a,information_schema.INNODB_SYS_TABLES bWHEREa.table_id = b.table_id AND a.space && 0;
运行上述的SQL语句应该可以得到类似如下的结果:
其中(SPAE,PAGE_NO)就是索引的Root页。SPACE,PAGE_NO对应的含义还不知道?那赶快来上Inside君的MySQL培训班吧,最好的MySQL培训班,过完年 深圳线下班 就将开启。
有了这些信息就可以方便的定位啦,因为PAGE_LEVEL在每个页的偏移量64位置出,占用两个字节,通过hexdump这样的工具就可以快速定位到所需要的树高度信息:
:~# hexdump -s 24640 -n 10 customer.ibd 02 00 00 00 00 00 00 00 47
查看customer表,24640表示的是3*8192+64(这里innodb_page_size设置为了8192,并非默认的16384),即第3个页偏移量64位置开始读取10个字节,但不是读取2个字节就可以了嘛?其实因为后面8个字节对应的是index_id,就是上图中看到的index为71的索引,这里PAGE_LEVEL为00 02,那么索引的高度就为3。
用同样的方法可以查看customer表中i_c_nationkey的索引高度:
:~# hexdump -s 32832 -n 10 customer.ibd 01 00 00 00 00 00 00 00 48
可以发现PAGE_LEVEL为00 01,表示这棵二级索引树的高度为2。
虽然通常来说索引树的高度为3~4层,但是极端情况下,比如数据量超级大,页比较小,如4K,那么高度也是可能破4的。那么现在是不是可以来比比谁家的索引树最高呢?
最后,IMG微信群会定期放出一些讨论问题,非常具有挑战,各位有态度的小伙伴要不要来挑战看看呢?可惜微信群已满,只能通过Inside君的邀请(Inside君的个人微信号:),赶快加入这个有态度的IMG社区吧。
本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
CodeSecTeam微信公众号
每一次烦恼的出现,都是一个给我们寻找自己缺点的机会。
手机客户端

我要回帖

更多关于 mysql 查看是否innodb 的文章

 

随机推荐