MySQLデータベースチューニング基本コマンドの使用

11566 ワード

このブログでは、mysqlの一般的なコマンドをまとめ、データベースのチューニングを支援します.このブログでは、tpc-hを使用して生成された8つのテーブルのtb_lineitem,tb_order,tb_partsupp.tpc-hデータムデータベースの詳細については、このブログを参照してください.
0.まずデータベースを開く
#        
$ sudo /etc/init.d/mysql start
#        
$ sudo /etc/init.d/mysql stop

1.データベースへの接続
$ mysql -u root -p[password]
#     :
$ mysql -u root -pyyz

2.データベースの表示、データベースの作成、データベースの削除
mysql> show databases;
mysql> create database [db_name]
mysql> drop database [db_name]
#     
mysql> create database db_test;
mysql> drop database db_test;

3.データベースの変更
#  [database name]           
mysql> use [database name];
#     ,     db_store   
mysql> use db_store;

4.データベース内のテーブルの表示
mysql> show tables;

5.表の詳細を表示する
mysql> desc [table name]
mysql>  [table name]      table  ,    
mysql> desc tb_lineitem;

6.分析表の状態
mysql> analyze table tb_lineitem;

7.クエリー文の分析
mysql> explain select * from tb_lineitem;

PS:データベースチューニングでexplainはクエリー文の実行状態を表示できる良いコマンドです.
8.文の実行時間の表示
mysql> set profiling=1;

文の実行時間を格納するテーブルprofilesを開きます.
mysql> show profiles;

実行文実行スケジュールの情報を表示します.
CPUとディスクIO情報に注目
mysql> show profile CPU, BLOCK IO for query [query ID]
#  [query ID]       ID,    
mysql> show profile CPU, BLOCK IO for query 1;

9.表索引の表示
mysql> show index from [table name];
#  [table name]       ,    :
mysql> show index from tb_lineitem;

10.索引の作成
mysql> create [fulltext] index [index name] on [table name]([column name,..])
#  [index name], [table name],[column name]        ,  ,  ,     :
mysql> create index commit_index on tb_lineitem(l_commitdate);
mysql> create fulltext index commit_index on tb_lineitem(l_commitdate);

11.索引の削除
mysql> drop index [index name] on [table name]
#  [index name] [table name]       ,  ,    :
mysql> drop index commit_index on tb_lineitem;

12.テーブルの接続(1)内部接続:対応する2つのテーブルの接続結果を返す(2)外部接続[1]左接続:左テーブル+左テーブルと右テーブルの接続結果を返す[2]右接続:右テーブル+左テーブルと右テーブルの接続結果を返す
#     
mysql> select count(*) from tb_lineitem inner join tb_order on tb_lineitem.l_orderkey = tb_order.o_orderkey  where tb_order.o_orderkey > 500000

#    
mysql> select count(*) from tb_lineitem left join tb_order on tb_lineitem.l_orderkey = tb_order.o_orderkey  where tb_order.o_orderkey > 500000

#    
mysql> select count(*) from tb_lineitem right join tb_order on tb_lineitem.l_orderkey = tb_order.o_orderkey  where tb_order.o_orderkey > 500000

13.次は基本的なmysql文です.
テーブルの作成
/* define table tb_lineitem */
CREATE TABLE IF NOT EXISTS `tb_lineitem`(
    `l_orderkey` int NOT NULL,
    `l_partkey` int NOT NULL,
    `l_suppkey` int NOT NULL,
    `l_linenumber` int NOT NULL,
    `l_quantity` decimal(15,2) NOT NULL,
    `l_extendedprice` decimal(15,2) NOT NULL,
    `l_discount` decimal(15,2) NOT NULL,
    `l_tax` decimal(15,2) NOT NULL,
    `l_returnflag` char(1) NOT NULL,
    `l_linestatus` char(1) NOT NULL,
    `l_shipdate` varchar(20) NOT NULL,
    `l_commitdate` varchar(20) NOT NULL,
    `l_receiptdate` varchar(20) NOT NULL,
    `l_shipinstruct` char(25) NOT NULL,
    `l_shipmode` char(10) NOT NULL,
    `l_comment` varchar(44) NOT NULL,
    PRIMARY KEY(`l_orderkey`, `l_linenumber`)
);
/* show tabel schema */
DESC `tb_lineitem`;

削除表:削除表の时必ず表が异なっていることを确保して、さもなくばまた回复しなければならなくて、面倒なのは死にます.の
mysql> drop table [table name]
#     
mysql> drop table tb_lineitem;

検索
mysql> select * from [table name] where [conditions];

更新
mysql> update [table name] set [set configuration] where [conditions];

挿入
mysql> insert into [table name]([column1,column2,...]) values ([column1_value, column2_value,...]);

削除
mysql> delete from [table name] where [conditions];

表の変更
mysql> alter table [table name] add [        ];
#     :
mysql> alter table tb_lineitem add l_addition string not null;
mysql> alter table tb_lineitem add index commit_index(l_commitdate);

さて今日はこれくらい书きますが、必要があればまた更新を続けます!!!
いくつかのチューニングブログ1.http://www.cnblogs.com/mliang/p/3637937.html 2.http://blog.csdn.net/zhu19774279/article/details/46473981 3.http://www.cnblogs.com/pcjim/articles/799302.html 4.http://www.cnblogs.com/tianhuilove/archive/2011/09/05/2167795.html 5.http://blog.csdn.net/u010179805/article/details/16926955 6.http://blog.csdn.net/xluren/article/details/32746183