1.下载ruby并安装ruby:
ftp://ftp.ruby-lang.org/pub/ruby/
ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.3-stable.tar.gz
tar -xvf ruby-2.3-stable.tar.gz
cd ruby-2.3.1
./configure
make
make install
2.下载rubygems:
https://rubygems.global.ssl.fastly.net/rubygems/rubygems-2.6.4.zip (到https://rubygems.org/ 首页找的rubygems下载地址)
cd rubygems-2.6.4
ruby setup.rb
3.下载并安装innodb_ruby
https://rubygems.org/gems/innodb_ruby (进入rubygems官网去找下载链接)
https://rubygems.global.ssl.fastly.net/gems/innodb_ruby-0.9.13.gem (浏览器下载)
wget https://rubygems.global.ssl.fastly.net/rubygems/rubygems-2.6.4.zip --no-check-certificate (wget下载)
gem install innodb_ruby-0.9.13.gem
[root@localhost ~]# gem -v 2.6.
[root@localhost ~]# gem list |grep innodb
innodb_ruby (0.9.13)
4.innodb_ruby使用文档:
https://github.com/jeremycole/innodb_ruby/wiki
https://blog.jcole.us/2013/01/03/a-quick-introduction-to-innodb-ruby/
https://blog.jcole.us/2014/10/02/visualizing-the-impact-of-ordered-vs-random-index-insertion-in-innodb/
http://luodw.cc/2016/03/15/innodb03/
5.实例:
进入到mysql数据目录:/data
[root@localhost data]# innodb_space -s ibdata1 system-spaces name pages indexes (system) mysql/innodb_index_stats mysql/innodb_table_stats mysql/slave_master_info mysql/slave_relay_log_info mysql/slave_worker_info test/t1 test/test1 test/test_auto_increment test/test_char test/test_ci test/test_int_n test/test_time test/test_unsigned
查看表t1索引
[root@localhost data]# innodb_space -s ibdata1 -T test/t1 space-indexes id name root fseg used allocated fill_factor PRIMARY internal 100.00% PRIMARY leaf 100.00%
[root@localhost data]# innodb_space -s ibdata1 -T test/t1 space-indexes id name root fseg used allocated fill_factor PRIMARY internal 100.00% PRIMARY leaf 100.00% You have new mail in /var/spool/mail/root [root@localhost data]# innodb_space -s ibdata1 -T test/t1 space-lsn-age-illustrate Start Page ╭────────────────────────────────────────────────────────────────╮ │███████ │ ╰────────────────────────────────────────────────────────────────╯ Legend (█ = page): Min LSN <─────────────────────────────────────────> Max LSN ███████████████████████████████████████████
$ irb -r innodb > sys = Innodb::System.new("ibdata1") > idx = sys.index_by_name("test/t1", "PRIMARY") > rec = idx.binary_search([])
[root@localhost data]# innodb_space -s ibdata1 -T test/test1 space-extents-illustrate Start Page ╭────────────────────────────────────────────────────────────────╮ │███▁?? │ ╰────────────────────────────────────────────────────────────────╯ Legend (█ = page): Page Type Pages Ratio █ System 50.00% █ Index (test/test1.GEN_CLUST_INDEX) 16.67% ? Free space 33.33%
[root@localhost data]# innodb_space -f test/t1.ibd space-page-type-regions start end count type FSP_HDR IBUF_BITMAP INODE INDEX FREE (ALLOCATED)
[root@localhost data]# innodb_space -f test/t1.ibd -p page-dump #<Innodb::Page::Index:0x007f798307d970>: fil header: {:checksum=>, :offset=>, :prev=>nil, :next=>nil, :lsn=>, :type=>:INDEX, :flush_lsn=>, :space_id=>} page header: {:n_dir_slots=>, :heap_top=>, :garbage_offset=>, :garbage_size=>, :last_insert_offset=>, :direction=>:right, :n_direction=>, :n_recs=>, :max_trx_id=>, :level=>, :index_id=>, :n_heap=>, :format=>:compact} fseg header: {:leaf=> <Innodb::Inode space=<Innodb::Space file="test/t1.ibd", page_size=, pages=>, fseg=>, :internal=> <Innodb::Inode space=<Innodb::Space file="test/t1.ibd", page_size=, pages=>, fseg=>} sizes: header trailer directory free used record per record 14.00 page directory: [, ] system records: {:offset=>, :header=> {:next=>, :type=>:infimum, :heap_number=>, :n_owned=>, :min_rec=>false, :deleted=>false, :length=>}, :next=>, :data=>"infimum\x00", :length=>} {:offset=>, :header=> {:next=>, :type=>:supremum, :heap_number=>, :n_owned=>, :min_rec=>false, :deleted=>false, :length=>}, :next=>, :data=>"supremum", :length=>} garbage records: records: {:format=>:compact, :offset=>, :header=> {:next=>, :type=>:node_pointer, :heap_number=>, :n_owned=>, :min_rec=>true, :deleted=>false, :length=>}, :next=>} {:format=>:compact, :offset=>, :header=> {:next=>, :type=>:node_pointer, :heap_number=>, :n_owned=>, :min_rec=>false, :deleted=>false, :length=>}, :next=>} {:format=>:compact, :offset=>, :header=> {:next=>, :type=>:node_pointer, :heap_number=>, :n_owned=>, :min_rec=>false, :deleted=>false, :length=>}, :next=>}
[root@localhost data]# innodb_space -f test/t1.ibd space-index-pages-summary page index level data free records
以上就是innodb结构解析工具---innodb_ruby的详细内容,更多关于innodb结构解析工具---innodb_ruby的资料请关注九品源码其它相关文章!