mysql基本的常用語句備忘

----------------------------數據庫的操作--------------------------------------------


創建數據庫

CREATE DATABASE IF NOT EXISTS [數據庫名] DEFAULT CHARSET utf8 COLLATE utf8_general_ci;


修改數據庫字符集:

alter database [數據庫名] character set utf8;


刪除數據庫

drop database [數據庫名]


創建用戶

CREATE USER '[用戶名]'@'%' IDENTIFIED BY '[用戶密碼]';


授權該用戶訪問數據庫的所有權限

GRANT USAGE ON *.* TO '[用戶名]'@'%' IDENTIFIED BY '[用戶密碼]' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

GRANT ALL PRIVILEGES ON `[數據庫名]`.* TO '[用戶名]'@'%';


刷新權限

flush privileges; 


刪除mysql用戶 

DROP USER '[用戶名]'@'%';


刪除用戶原來的所有權限

REVOKE ALL PRIVILEGES ON `[數據庫名]`.* FROM '[用戶名]'@'%';


賦予新的只讀權限

GRANT SELECT ON `[數據庫名]`.* TO '[用戶名]'@'%';


備份數據庫:

mysqldump -h[主機IP] -u[用戶名] -p[密碼] [數據庫名] > [保存路徑]

mysqldump -uroot -hlocalhost -p123456 db_test > "/home/www/db.sql";


顯示所有數據庫

show databases


----------------------------表的操作--------------------------------------------

創建表

DROP TABLE IF EXISTS `[表名]`;

CREATE TABLE IF NOT EXISTS `[表名]` (

  `id` bigint(15) unsigned NOT NULL auto_increment COMMENT '自增ID',

  `user_name` varchar(30) NOT NULL default '' COMMENT '賬號',

  `password` varchar(50) NOT NULL default '' COMMENT '密碼',

  `create_date` int(10) unsigned NOT NULL default '0' COMMENT '創建時間',

  PRIMARY KEY  (`id`),

  UNIQUE KEY `user_name` (`user_name`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用戶表' AUTO_INCREMENT=1 ;


修改表名

RENAME TABLE [原表名] TO [新表名];


添加字段

ALTER TABLE [表名] ADD [字段名] INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '[備註]'


修改字段名

ALTER TABLE [表名] CHANGE [原字段] [新字段] INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '[備註]'


添加索引

ALTER TABLE [表名] ADD INDEX ([索引字段名])


刪除索引

ALTER TABLE [表名] DROP INDEX [索引名]


創建唯一索引

ALTER TABLE [表名] ADD UNIQUE([索引名])


清空表

TRUNCATE TABLE [表名]


刪除表

DROP TABLE [表名]


碎片整理

optimize table [表1],[表2]


顯示所有表

show tables


查看數據庫中所有表的記錄數

use information_schema;

select table_name,table_rows from tables where TABLE_SCHEMA = 'db_test';


創建一張臨時表 並插入數據

create temporary table [表1] select * from [表2];


把數據批量插入到另外一張表

insert into [表1](f1,f2) select v1,v2 from [表2]


查看錶字段

show columns from [表名];


查看錶結構

show create table [表名];


查看錶索引

show index from [表名];



導入sql

source /root/db.sql;


----------------------------數據庫管理維護--------------------------------------------

查看狀態

show status like '%abc%';


查看參數的設置情況

show variables like '%abc%';


狀態名作用域詳細解釋
Aborted_clientsGlobal由於客戶端沒有正確關閉連接導致客戶端終止而中斷的連接數
Aborted_connectsGlobal試圖連接到MySQL服務器而失敗的連接數
Binlog_cache_disk_useGlobal使用臨時二進制日誌緩存但超過binlog_cache_size值並使用臨時文件來保存事務中的語句的事務數量
Binlog_cache_useGlobal使用臨時二進制日誌緩存的事務數量
Bytes_receivedBoth從所有客戶端接收到的字節數。
Bytes_sentBoth發送給所有客戶端的字節數。
com*
各種數據庫操作的數量
CompressionSession客戶端與服務器之間只否啓用壓縮協議
ConnectionsGlobal試圖連接到(不管是否成功)MySQL服務器的連接數
Created_tmp_disk_tablesBoth服務器執行語句時在硬盤上自動創建的臨時表的數量
Created_tmp_filesGlobalmysqld已經創建的臨時文件的數量
Created_tmp_tablesBoth服務器執行語句時自動創建的內存中的臨時表的數量。如果Created_tmp_disk_tables較大,你可能要增加tmp_table_size值使臨時 表基於內存而不基於硬盤
Delayed_errorsGlobal用INSERT DELAYED寫的出現錯誤的行數(可能爲duplicate key)。
Delayed_insert_threadsGlobal使用的INSERT DELAYED處理器線程數。
Delayed_writesGlobal寫入的INSERT DELAYED行數
Flush_commandsGlobal執行的FLUSH語句數。
Handler_commitBoth內部提交語句數
Handler_deleteBoth行從表中刪除的次數。
Handler_discoverBothMySQL服務器可以問NDB CLUSTER存儲引擎是否知道某一名字的表。這被稱作發現。Handler_discover說明通過該方法發現的次數。
Handler_prepareBothA counter for the prepare phase of two-phase commit operations.
Handler_read_firstBoth索引中第一條被讀的次數。如果較高,它建議服務器正執行大量全索引掃描;例如,SELECT col1 FROM foo,假定col1有索引。
Handler_read_keyBoth根據鍵讀一行的請求數。如果較高,說明查詢和表的索引正確。
Handler_read_nextBoth按照鍵順序讀下一行的請求數。如果你用範圍約束或如果執行索引掃描來查詢索引列,該值增加。
Handler_read_prevBoth按照鍵順序讀前一行的請求數。該讀方法主要用於優化ORDER BY ... DESC。
Handler_read_rndBoth根據固定位置讀一行的請求數。如果你正執行大量查詢並需要對結果進行排序該值較高。你可能使用了大量需要MySQL掃描整個表的查詢或你的連接沒有正確使用鍵。
Handler_read_rnd_nextBoth在數據文件中讀下一行的請求數。如果你正進行大量的表掃描,該值較高。通常說明你的表索引不正確或寫入的查詢沒有利用索引。
Handler_rollbackBoth內部ROLLBACK語句的數量。
Handler_savepointBoth在一個存儲引擎放置一個保存點的請求數量。
Handler_savepoint_rollbackBoth在一個存儲引擎的要求回滾到一個保存點數目。
Handler_updateBoth在表內更新一行的請求數。
Handler_writeBoth在表內插入一行的請求數。
Innodb_buffer_pool_pages_dataGlobal包含數據的頁數(髒或乾淨)。
Innodb_buffer_pool_pages_dirtyGlobal當前的髒頁數。
Innodb_buffer_pool_pages_flushedGlobal要求清空的緩衝池頁數
Innodb_buffer_pool_pages_freeGlobal空頁數。
Innodb_buffer_pool_pages_latchedGlobal在InnoDB緩衝池中鎖定的頁數。這是當前正讀或寫或由於其它原因不能清空或刪除的頁數。
Innodb_buffer_pool_pages_miscGlobal忙的頁數,因爲它們已經被分配優先用作管理,例如行鎖定或適用的哈希索引。該值還可以計算爲Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data。
Innodb_buffer_pool_pages_totalGlobal緩衝池總大小(頁數)。
Innodb_buffer_pool_read_ahead_rndGlobalInnoDB初始化的“隨機”read-aheads數。當查詢以隨機順序掃描表的一大部分時發生。
Innodb_buffer_pool_read_ahead_seqGlobalInnoDB初始化的順序read-aheads數。當InnoDB執行順序全表掃描時發生。
Innodb_buffer_pool_read_requestsGlobalInnoDB已經完成的邏輯讀請求數。
Innodb_buffer_pool_readsGlobal不能滿足InnoDB必須單頁讀取的緩衝池中的邏輯讀數量。
Innodb_buffer_pool_wait_freeGlobal一般情況,通過後臺向InnoDB緩衝池寫。但是,如果需要讀或創建頁,並且沒有乾淨的頁可用,則它還需要先等待頁面清空。該計數器對等待實例進行記數。如果已經適當設置緩衝池大小,該值應小。
Innodb_buffer_pool_write_requestsGlobal向InnoDB緩衝池的寫數量。
Innodb_data_fsyncsGlobalfsync()操作數。
Innodb_data_pending_fsyncsGlobal當前掛起的fsync()操作數。
Innodb_data_pending_readsGlobal當前掛起的讀數。
Innodb_data_pending_writesGlobal當前掛起的寫數。
Innodb_data_readGlobal至此已經讀取的數據數量(字節)。
Innodb_data_readsGlobal數據讀總數量。
Innodb_data_writesGlobal數據寫總數量。
Innodb_data_writtenGlobal至此已經寫入的數據量(字節)。
Innodb_dblwr_pages_writtenGlobal已經執行的雙寫操作數量
Innodb_dblwr_writesGlobal雙寫操作已經寫好的頁數
Innodb_log_waitsGlobal我們必須等待的時間,因爲日誌緩衝區太小,我們在繼續前必須先等待對它清空

Innodb_log_write_requestsGlobal日誌寫請求數。
Innodb_log_writesGlobal向日志文件的物理寫數量。
Innodb_os_log_fsyncsGlobal向日志文件完成的fsync()寫數量。
Innodb_os_log_pending_fsyncsGlobal掛起的日誌文件fsync()操作數量。
Innodb_os_log_pending_writesGlobal掛起的日誌文件寫操作
Innodb_os_log_writtenGlobal寫入日誌文件的字節數。
Innodb_page_sizeGlobal編譯的InnoDB頁大小(默認16KB)。許多值用頁來記數;頁的大小很容易轉換爲字節。
Innodb_pages_createdGlobal創建的頁數。
Innodb_pages_readGlobal讀取的頁數。
Innodb_pages_writtenGlobal寫入的頁數。
Innodb_row_lock_current_waitsGlobal當前等待的待鎖定的行數。
Innodb_row_lock_timeGlobal行鎖定花費的總時間,單位毫秒。
Innodb_row_lock_time_avgGlobal行鎖定的平均時間,單位毫秒。
Innodb_row_lock_time_maxGlobal行鎖定的最長時間,單位毫秒。
Innodb_row_lock_waitsGlobal一行鎖定必須等待的時間數。
Innodb_rows_deletedGlobal從InnoDB表刪除的行數。
Innodb_rows_insertedGlobal插入到InnoDB表的行數。
Innodb_rows_readGlobal從InnoDB表讀取的行數。
Innodb_rows_updatedGlobalInnoDB表內更新的行數。
Key_blocks_not_flushedGlobal鍵緩存內已經更改但還沒有清空到硬盤上的鍵的數據塊數量。
Key_blocks_unusedGlobal鍵緩存內未使用的塊數量。你可以使用該值來確定使用了多少鍵緩存
Key_blocks_usedGlobal鍵緩存內使用的塊數量。該值爲高水平線標記,說明已經同時最多使用了多少塊。
Key_read_requestsGlobal從緩存讀鍵的數據塊的請求數。
Key_readsGlobal從硬盤讀取鍵的數據塊的次數。如果Key_reads較大,則Key_buffer_size值可能太小。可以用Key_reads/Key_read_requests計算緩存損失率。
Key_write_requestsGlobal將鍵的數據塊寫入緩存的請求數。
Key_writesGlobal向硬盤寫入將鍵的數據塊的物理寫操作的次數。
Last_query_costSession用查詢優化器計算的最後編譯的查詢的總成本。用於對比同一查詢的不同查詢方案的成本。默認值0表示還沒有編譯查詢。 默認值是0。Last_query_cost具有會話範圍。
Max_used_connectionsGlobal服務器啓動後已經同時使用的連接的最大數量。
ndb*
ndb集羣相關
Not_flushed_delayed_rowsGlobal等待寫入INSERT DELAY隊列的行數。


 

Open_filesGlobal打開的文件的數目。
Open_streamsGlobal打開的流的數量(主要用於記錄)。
Open_table_definitionsGlobal緩存的.frm文件數量
Open_tablesBoth當前打開的表的數量。

Opened_filesGlobal文件打開的數量。不包括諸如套接字或管道其他類型的文件。 也不包括存儲引擎用來做自己的內部功能的文件。
Opened_table_definitionsBoth已經緩存的.frm文件數量
Opened_tablesBoth已經打開的表的數量。如果Opened_tables較大,table_cache 值可能太小。
Prepared_stmt_countGlobal當前的預處理語句的數量。 (最大數爲系統變量: max_prepared_stmt_count)
Qcache_free_blocksGlobal查詢緩存內自由內存塊的數量。
Qcache_free_memoryGlobal用於查詢緩存的自由內存的數量。
Qcache_hitsGlobal查詢緩存被訪問的次數。
Qcache_insertsGlobal加入到緩存的查詢數量。
Qcache_lowmem_prunesGlobal由於內存較少從緩存刪除的查詢數量。
Qcache_not_cachedGlobal非緩存查詢數(不可緩存,或由於query_cache_type設定值未緩存)。
Qcache_queries_in_cacheGlobal登記到緩存內的查詢的數量。
Qcache_total_blocksGlobal查詢緩存內的總塊數。
QueriesBoth服務器執行的請求個數,包含存儲過程中的請求。
QuestionsBoth已經發送給服務器的查詢的個數。
Rpl_statusGlobal失敗安全複製狀態(還未使用)。
Select_full_joinBoth沒有使用索引的聯接的數量。如果該值不爲0,你應仔細檢查表的索引
Select_full_range_joinBoth在引用的表中使用範圍搜索的聯接的數量。
Select_rangeBoth在第一個表中使用範圍的聯接的數量。一般情況不是關鍵問題,即使該值相當大。
Select_range_checkBoth在每一行數據後對鍵值進行檢查的不帶鍵值的聯接的數量。如果不爲0,你應仔細檢查表的索引。
Select_scanBoth對第一個表進行完全掃描的聯接的數量。
Slave_heartbeat_periodGlobal複製的心跳間隔
Slave_open_temp_tablesGlobal從服務器打開的臨時表數量
Slave_received_heartbeatsGlobal從服務器心跳數
Slave_retried_transactionsGlobal本次啓動以來從服務器複製線程重試次數
Slave_runningGlobal如果該服務器是連接到主服務器的從服務器,則該值爲ON。
Slow_launch_threadsBoth創建時間超過slow_launch_time秒的線程數。
Slow_queriesBoth查詢時間超過long_query_time秒的查詢的個數。
Sort_merge_passesBoth排序算法已經執行的合併的數量。如果這個變量值較大,應考慮增加sort_buffer_size系統變量的值。
Sort_rangeBoth在範圍內執行的排序的數量。
Sort_rowsBoth已經排序的行數。
Sort_scanBoth通過掃描表完成的排序的數量。
ssl*
ssl連接相關
Table_locks_immediateGlobal立即獲得的表的鎖的次數。
Table_locks_waitedGlobal不能立即獲得的表的鎖的次數。如果該值較高,並且有性能問題,你應首先優化查詢,然後拆分表或使用複製。
Threads_cachedGlobal線程緩存內的線程的數量。
Threads_connectedGlobal當前打開的連接的數量。
Threads_createdGlobal創建用來處理連接的線程數。如果Threads_created較大,你可能要增加thread_cache_size值。緩存訪問率的計算方法Threads_created/Connections。
Threads_runningGlobal激活的(非睡眠狀態)線程數。
UptimeGlobal服務器已經運行的時間(以秒爲單位)。
Uptime_since_flush_statusGlobal最近一次使用FLUSH STATUS 的時間(以秒爲單位)。


 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章