zoukankan      html  css  js  c++  java
  • MyISAM表杂记实验

    一、本文说明

       由于刚学mysql所以动手做了一些实验。

    二、实验内容

    1、验证MyISAM有AUOT_INCREMENT coloumn功能

    ----在这里是对现有表t,增加一个主键----
    mysql> alter table t add column id1 int not null auto_increment,add primary key(id1); Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> desc t; +-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | id | int(11) | YES | | NULL | | | id1 | int(11) | NO | PRI | NULL | auto_increment | +-------+---------+------+-----+---------+----------------+ 2 rows in set (0.00 sec) ----当没有主键没有插入数据时,已经运行自动增长列了----
    mysql
    > select * from t; +------+-----+ | id | id1 | +------+-----+ | 1 | 1 | | 1 | 2 | | 1 | 3 | +------+-----+ 3 rows in set (0.00 sec)

    2、验证MyISAM表没有事务性

    mysql> show variables like '%autocommit%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit    | ON    |
    +---------------+-------+
    1 row in set (0.00 sec)
    
    mysql> set session autocommit=off;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like '%autocommit%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit    | OFF   |
    +---------------+-------+
    1 row in set (0.00 sec)
    
    mysql> insert into t value(1);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from t;
    +------+
    | id   |
    +------+
    |    1 |
    +------+
    1 row in set (0.00 sec)
    
    mysql> rollback;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> select * from t;
    +------+
    | id   |
    +------+
    |    1 |
    +------+
    1 row in set (0.00 sec)

    3、验证MyISAM的压缩性

    mysql> insert into t values(1);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into t select * from t;
    Query OK, 2 rows affected (0.00 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> insert into t select * from t;
    Query OK, 4 rows affected (0.00 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    。
    。
    。
    。
    mysql> insert into t select * from t;
    Query OK, 8388608 rows affected (13.54 sec)
    Records: 8388608  Duplicates: 0  Warnings: 0
    
    mysql> select count(1) from t;
    +----------+
    | count(1) |
    +----------+
    | 16777216 |
    +----------+
    1 row in set (0.00 sec)
    
    [root@rhel5 test]# ll -h
    total 113M
    -rw-rw---- 1 mysql mysql 8.4K Sep  3 13:53 t.frm
    -rw-rw---- 1 mysql mysql 112M Sep  3 14:05 t.MYD
    -rw-rw---- 1 mysql mysql 1.0K Sep  3 14:05 t.MYI
    [root@rhel5 test]# myisampack t
    Compressing t.MYD: (16777216 records)
    - Calculating statistics
    - Compressing file
    85.71%     
    [root@rhel5 test]# ll -h
    total 17M
    -rw-rw---- 1 mysql mysql 8.4K Sep  3 13:53 t.frm
    -rw-rw---- 1 mysql mysql  17M Sep  3 14:05 t.MYD
    -rw-rw---- 1 mysql mysql 1.0K Sep  3 14:06 t.MYI

    备注:压缩完以后切记将表进行备份。
    4、对MyISAM拷贝复制的例子

    mysql> use jack;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> show tables;
    +----------------+
    | Tables_in_jack |
    +----------------+
    | echo           |
    | jack           |
    +----------------+
    2 rows in set (0.00 sec)
    
    mysql> create database echo;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> exit;
    Bye
    [root@rhel5 mysql5.5]# service mysql stop
    Shutting down MySQL...............                         [  OK  ]
    
    [root@rhel5 jack]# ll
    total 36
    -rw-rw---- 1 mysql mysql   61 Sep  1 16:41 db.opt
    -rw-rw---- 1 mysql mysql 8556 Sep  4 10:19 echo.frm
    -rw-rw---- 1 mysql mysql 8556 Sep  4 10:18 jack.frm
    -rw-rw---- 1 mysql mysql   28 Sep  5 11:27 jack.MYD
    -rw-rw---- 1 mysql mysql 1024 Sep  5 11:27 jack.MYI
    [root@rhel5 jack]# mv jack.* ../echo/
    
    [root@rhel5 mysql5.5]# service mysql start
    Starting MySQL.........................                    [  OK  ]
    [root@rhel5 mysql5.5]# mysql
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 1
    Server version: 5.5.22 Source distribution
    
    Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | echo               |
    | jack               |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    6 rows in set (0.00 sec)
    
    mysql> use jack;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> show tables;
    +----------------+
    | Tables_in_jack |
    +----------------+
    | echo           |
    +----------------+
    1 row in set (0.00 sec)
    
    mysql> use echo
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> show tables;
    +----------------+
    | Tables_in_echo |
    +----------------+
    | jack           |
    +----------------+
    1 row in set (0.00 sec)
    
    mysql> select * from jack;
    +------+
    | id   |
    +------+
    |    1 |
    |    2 |
    |    1 |
    |    2 |
    +------+
    4 rows in set (0.00 sec)

    5、表的导入和导出

    mysql> select * from jack;
    +------+
    | id   |
    +------+
    |    1 |
    |    2 |
    +------+
    2 rows in set (0.00 sec)
    
    mysql> select * from jack into outfile '/tmp/a.txt' fields terminated by ',' enclosed by '"';
    Query OK, 2 rows affected (0.00 sec)
    
    [root@rhel5 mysql5.5]# cat /tmp/a.txt
    "1"
    "2"
    
    mysql> load data infile '/tmp/a.txt' into table jack fields terminated by ',' enclosed by '"';
    Query OK, 2 rows affected (0.00 sec)
    Records: 2  Deleted: 0  Skipped: 0  Warnings: 0
    
    mysql> select * from jack;
    +------+
    | id   |
    +------+
    |    1 |
    |    2 |
    |    1 |
    |    2 |
    +------+
    4 rows in set (0.00 sec)

     6、杀掉mysql sleep进程的shell

    mysql> show processlist;
    +----+------+-----------+------+---------+-------+-------+------------------+
    | Id | User | Host      | db   | Command | Time  | State | Info             |
    +----+------+-----------+------+---------+-------+-------+------------------+
    |  1 | root | localhost | test | Sleep   | 72565 |       | NULL             |
    |  2 | root | localhost | test | Sleep   | 12145 |       | NULL             |
    |  3 | root | localhost | test | Sleep   | 12079 |       | NULL             |
    |  6 | root | localhost | jack | Query   |     0 | NULL  | show processlist |
    +----+------+-----------+------+---------+-------+-------+------------------+
    4 rows in set (0.00 sec)
    ----其中id为1、2、3的进程已经为sleep,先杀掉id=1
    [root@rhel5 ~]# mysqladmin kill 1
    [root@rhel5 ~]# mysqladmin processlist
    +----+------+-----------+------+---------+-------+-------+------------------+
    | Id | User | Host      | db   | Command | Time  | State | Info             |
    +----+------+-----------+------+---------+-------+-------+------------------+
    | 2  | root | localhost | test | Sleep   | 12432 |       |                  |
    | 3  | root | localhost | test | Sleep   | 12366 |       |                  |
    | 6  | root | localhost | jack | Sleep   | 287   |       |                  |
    | 11 | root | localhost |      | Query   | 0     |       | show processlist |
    +----+------+-----------+------+---------+-------+-------+------------------+
  • 相关阅读:
    30 Day Challenge Day 4 | Leetcode 102. Binary Tree Level Order Traversal
    30 Day Challenge Day 4 | Hackrank
    30 Day Challenge Day 4 | Leetcode 104. Maximum Depth of Binary Tree
    30 Day Challenge Day 3 | Leetcode 145. Binary Tree Postorder Traversal
    30 Day Challenge Day 3 | Leetcode 144. Binary Tree Preorder Traversal
    30 Day Challenge Day 2 | Leetcode 1302. Deepest Leaves Sum
    30 Day Challenge Day 2 | Leetcode 206. Reverse Linked List
    30 Day Challenge Day 1 | Leetcode 107. Binary Tree Level Order Traversal II
    30 Day Challenge Day 1 | Hackerrank
    刷题 | Leetcode 901. Online Stock Span | Stack
  • 原文地址:https://www.cnblogs.com/Richardzhu/p/3303261.html
Copyright © 2011-2022 走看看