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 |
    +----+------+-----------+------+---------+-------+-------+------------------+
  • 相关阅读:
    [第二届构建之法论坛] 预培训文档(Java版)
    避免走进熟人社交的误区——给新手助教的几个建议
    BugPhobia发布篇章:Beta版本学霸在线系统正式发布
    BugPhobia回顾篇章:团队Beta 阶段工作分析
    BugPhobia终章篇章:学霸在线系统Beta阶段展示
    BugPhobia发布篇章:学霸在线系统测试报告
    BugPhobia开发终结篇章:Beta阶段第XI次Scrum Meeting
    BugPhobia开发篇章:Beta阶段第X次Scrum Meeting
    BugPhobia开发篇章:Beta阶段第IX次Scrum Meeting
    BugPhobia休息篇章:Beta阶段第IX次Scrum Meeting前奏
  • 原文地址:https://www.cnblogs.com/Richardzhu/p/3303261.html
Copyright © 2011-2022 走看看