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 |
+----+------+-----------+------+---------+-------+-------+------------------+
原文地址:https://www.cnblogs.com/Richardzhu/p/3303261.html