Time of Update: 2018-12-07
記錄檔類型MySQL有幾個不同的記錄檔,可以協助你找出mysqld內部發生的事情:記錄檔記入檔案中的資訊類型錯誤記錄檔記錄啟動、運行或停止mysqld時出現的問題。查詢日誌記錄建立的用戶端串連和執行的語句。更新日誌記錄更改資料的語句。不贊成使用該日誌。二進位日誌記錄所有更改資料的語句。還用於複製。慢日誌記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。 預設情況下,所有日誌建立於mysqld資料目錄中。通過重新整理日誌,你可以強制 mysqld來
Time of Update: 2018-12-07
建立表簡單的方式CREATE TABLE person (number INT(11),name VARCHAR(255),birthday DATE);或者是CREATE TABLE IF NOT EXISTS person (number INT(11),name VARCHAR(255),birthday DATE);查看mysql建立表:SHOW CREATE table person;CREATE TABLE `person` ( `number` int(11) DEFAULT
Time of Update: 2018-12-07
FLUSH文法FLUSH [LOCAL | NO_WRITE_TO_BINLOG] flush_option [, flush_option] ...如果您想要清除MySQL使用的部分內部緩衝,您應該使用FLUSH語句。要執行FLUSH,您必須擁有RELOAD許可權。 flush_optionHOSTS用於清空主機緩衝表。如果有的主機更改了IP號或如果您得到了錯誤資訊Host host_name is blocked,則您應該重新整理主機表。當在串連到MySQL伺服器時,如果對於一個給定的主機,
Time of Update: 2018-12-07
前言 很多人都將<資料庫設計範式>作為資料庫表結構設計“聖經”,認為只要按照這個範式需求設計,就能讓設計出來的表結構足夠最佳化,既能保證效能優異同時還能滿足擴充性要求。殊不知,在N年前被奉為“聖經”的資料庫設計3範式早就已經不完全適用了。這裡我整理了一些比較常見的資料庫表結構設計方面的最佳化技巧,希望對大家有用。 由於MySQL資料庫是基於行(Row)儲存的資料庫,而資料庫操作 IO 的時候是以
Time of Update: 2018-12-07
load的文法LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char' ] ] [LINES
Time of Update: 2018-12-07
Explain文法EXPLAIN SELECT ……變體:1. EXPLAIN EXTENDED SELECT ……將執行計畫“反編譯”成SELECT語句,運行SHOW WARNINGS 可得到被MySQL最佳化器最佳化後的查詢語句 2. EXPLAIN PARTITIONS SELECT
Time of Update: 2018-12-07
KILL文法KILL [CONNECTION | QUERY] thread_id 每個與mysqld的串連都在一個獨立的線程裡運行,您可以使用SHOW PROCESSLIST語句查看哪些線程正在運行,並使用KILL thread_id語句終止一個線程。KILL允許自選的CONNECTION或QUERY修改符:· KILL CONNECTION與不含修改符的KILL一樣:它會終止與給定的thread_id有關的串連。· KILL
Time of Update: 2018-12-07
select的文法SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr, ... [INTO OUTFILE
Time of Update: 2018-12-07
表的結構如下:mysql> show create table person;| person | CREATE TABLE `person` ( `number` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `birthday` date DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 |刪除列:ALTER TABLE person DROP COLUMN
Time of Update: 2018-12-07
mysql命令列中指定程式選項的規則在命令名後面緊跟選項。選項參量以一個和兩個破折號開始,取決於它具有短名還是長名。例如,-?和--help是指導MySQL程式顯示協助訊息的短選項和長選項。選項名對大小寫敏感。-v和-V均有效,但具有不同的含義。(它們是--verbose和--version選項的短名)。部分選項在選項名後面緊隨選項值。例如,-hlocalhost或--host=localhost表示客戶程式的MySQL伺服器主機。選項值可以告訴程式MySQL伺服器啟動並執行主機名稱。對於帶選項
Time of Update: 2018-12-07
update文法Single-table文法:UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]Multiple-table文法:UPDATE [LOW_PRIORITY] [IGNORE] table_references SET
Time of Update: 2018-12-07
前言使用mysql也有一段時間,但是安裝mysql,都是在linux上使用軟體源的安裝,再使用mysql內建的shell執行的便捷啟動,對於mysql內部的啟動參數不甚瞭解,所以特意從mysql官網下載mysql的tar包,自行安裝啟動,瞭解mysql程式的啟動過程,有助於啟動過程的排錯,進一步瞭解mysql。環境ubuntu 12.04 32bit下載mysql1.下載:在http://dev.mysql.com/downloads/mysql/官網上下載mysql-5.5.28-linux2
Time of Update: 2018-12-07
前言在安裝完MySQL之後,肯定是需要對MySQL的各種參數選項進行一些最佳化調整的。雖然MySQL系統的伸縮性很強,既可以在有很充足的硬體資源環境下高效的運行,也可以在極少資源環境下很好的運行,但不管怎樣,儘可能充足的硬體資源對MySQL的效能提升總是有協助的。在這一節我們主要分析一下MySQL的日誌(主要是Binlog)對系統效能的影響,並根據日誌的相關特性得出相應的最佳化思路。 日誌產生的效能影響由於日誌的記錄帶來的直接效能損耗就是資料庫系統中最為昂貴的IO資源。在之前介紹MySQL物理架
Time of Update: 2018-12-07
建立索引建立索引的文法是:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) index_col_name: col_name [(length)] [ASC |
Time of Update: 2018-12-07
insert的文法INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]或:INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY]
Time of Update: 2018-12-07
前言有人反饋之前幾篇文章過於理論缺少實際操作細節,這篇文章就多一些可操作性的內容吧。註:這篇文章是以 MySQL 為背景,很多內容同時適用於其他關係型資料庫,需要有一些索引知識為基礎。 最佳化目標 1.減少 IO 次數 IO永遠是資料庫最容易瓶頸的地方,這是由資料庫的職責所決定的,大部分資料庫操作中超過90%的時間都是 IO 操作所佔用的,減少 IO 次數是 SQL 最佳化中需要第一優先考慮,當然,也是收效最明顯的最佳化手段。 2.降低 CPU 計算 除了 IO
Time of Update: 2018-12-07
前言全域共用內則主要是 MySQL Instance(mysqld進程)以及底層儲存引擎用來暫存各種全域運算及可共用的暫存資訊,如儲存查詢快取的 Query Cache,緩衝連接線程的 Thread Cache,緩衝表檔案控制代碼資訊的 Table Cache,緩衝二進位日誌的 BinLog Buffer, 緩衝 MyISAM 儲存引擎索引鍵的 Key Buffer以及儲存 InnoDB 資料和索引的 InnoDB Buffer Pool 等等。下面針對 MySQL
Time of Update: 2018-12-07
delete文法單表文法:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]多表文法:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*] ...] FROM table_references [WHERE
Time of Update: 2018-12-07
MySQL增加新使用者賬戶可以用兩種方式建立MySQL賬戶:1.使用GRANT語句2.直接操作MySQL授權表最好的方法是使用GRANT語句,因為這樣更精確,錯誤少。 建立超級 使用者:mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
Time of Update: 2018-12-07
mysql資源 mysql5.1中文參考手冊mysql管理 基於linux使用mysql二進位包安裝mysql5.5 mysql client命令列選項 mysqld伺服器系統變數和狀態變數 mysql SQL伺服器模式 mysql 賬戶管理 mysql記錄檔 mysql列類型 mysql資料庫操作 mysql建立和刪除表 mysql修改表 mysql索引操作 mysql索引詳解 mysql select操作 mysql insert操作 mysql