日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

mysql基本操作

系統(tǒng) 2136 0

一、連接操作

?格式:mysql-h主機地址?-u用戶名?-p用戶密碼

例:連接到遠程主機上的mysql假設(shè)遠程主機的IP為:110.110.110.110用戶

名為root,密碼為abcd123則鍵入以下命令:

mysql-h110.110.110.110-uroot-pabcd123

二、用戶級操作

1、select?user()?查看自己的用戶名

2、Linux命令ps?-el?|?grep?mysqld用來檢測mysql服務(wù)器是否在運行。如果結(jié)果為:

???4?S??0??1796??1??0??85???0?-??1513?wait???????00:00:00?mysqld_safe

???4?S??27?1856??1796??0??78???0?-?34055?-???????????????00:00:00?mysqld

???就說明服務(wù)器已經(jīng)運行起來了。

3、修改密碼

update?user?set?password="新密碼"?where?user="用戶名"。

4、新加用戶

Grant?select?on?數(shù)據(jù)庫.*to?用戶名@登錄主機?identified?by?“密碼”。

三、數(shù)據(jù)庫操作

1、創(chuàng)建數(shù)據(jù)庫?create?database?<數(shù)據(jù)庫名>

2、顯示數(shù)據(jù)庫?show?database;

3、刪除數(shù)據(jù)庫?drop?database?<數(shù)據(jù)庫名>

4、連接數(shù)據(jù)庫?use?<數(shù)據(jù)庫名>

5、當前選中的數(shù)據(jù)庫?select?database();

6、查看數(shù)據(jù)庫編碼SHOW?VARIABLES?LIKE?'character%';

四、數(shù)據(jù)表操作

1、創(chuàng)建數(shù)據(jù)表?create?table?<表名>(?<字段名1><類型1>,<字段名2><類型2>);

2、查看表結(jié)構(gòu)?describe?表名

3、獲取表結(jié)構(gòu)?desc表名,或者show?columns?from?表名;

4、刪除數(shù)據(jù)表?drop?table<表名>

5、表插入數(shù)據(jù)?insert?into?表名?(字段1,字段2......)?values?("值1",“值2”...),....("值1","值2");

6、查詢表中數(shù)據(jù)?select?<字段1,字段2....>from<表名>where<表達式>?,查看前2行數(shù)據(jù)?select*from表名?limit(0,2)

7、刪除表中數(shù)據(jù)?delete?from?表名?where?表達式

8、修改表中數(shù)據(jù)?update?表名?set?字段=新值,..where?條件

9、增加字段?alter?table?表名?add?字段?類型?其他

???加索引???alter?table?表名?add?index?索引名?(字段1,字段2);

???加主鍵???alter?table?表名?add?primary?key(字段名);

???刪除某個索引?alter?table?表名?drop?index?索引名;

???修改原字段名稱及類型?alter?table?表名?change舊字段名?新字段名?新類型;

???刪除字段?alter?table?表名?drop?字段名

10、修改表名??rename?table?舊表名?to?新表名

五、備份數(shù)據(jù)庫

?

1、導(dǎo)出整個數(shù)據(jù)庫

???導(dǎo)出文件默認是存在mysql\bin目錄下
???mysqldump?-u?用戶名?-p?數(shù)據(jù)庫名?>?導(dǎo)出的文件名
???mysqldump?-u?user_name?-p123456?database_name?>?outfile_name.sql

2、導(dǎo)出一個表

???mysqldump?-u?用戶名?-p?數(shù)據(jù)庫名?表名>?導(dǎo)出的文件名
???mysqldump?-u?user_name?-p?database_name?table_name?>?outfile_name.sql

3、導(dǎo)出一個數(shù)據(jù)庫結(jié)構(gòu)

???mysqldump?-u?user_name?-p?-d?–add-drop-table?database_name?>?outfile_name.sql
???-d?沒有數(shù)據(jù)?–add-drop-table?在每個create語句之前增加一個drop?table

4、帶語言參數(shù)導(dǎo)出

???mysqldump?-uroot?-p?–default-character-set=latin1?–set-charset=gbk?–skip-opt??????database_name?>?outfile_name.sql

5、導(dǎo)入文件?source?文件路徑??mysql>source?d:\mydb.sql

注:導(dǎo)出文件時在操作系統(tǒng)控制臺的ySQL\MySQL?Server?5.5\bin目錄下執(zhí)行?,導(dǎo)入文件是在mysql控制臺執(zhí)行

?

六、query?cache

Query?Cache?緩存了我們客戶端提交給?MySQL?的?SELECT?語句以及該語句的結(jié)果集。大概來講,就是將?SELECT?語句和語句的結(jié)果做了一個?HASH?映射關(guān)系然后保存在一定的內(nèi)存區(qū)域中。

1、query?cache?的五個變量(使用show?variable?like?'%query_cache%'語句查看)

  • query_cache_limit:允許?Cache?的單條?Query?結(jié)果集的最大容量,默認是1MB,超過此參數(shù)設(shè)置的?Query?結(jié)果集將不會被?Cache
  • query_cache_min_res_unit:設(shè)置?Query?Cache?中每次分配內(nèi)存的最小空間大小,也就是每個?Query?的?Cache?最小占用的內(nèi)存空間大小
  • query_cache_size:設(shè)置?Query?Cache?所使用的內(nèi)存大小,默認值為0,大小必須是1024的整數(shù)倍,如果不是整數(shù)倍,MySQL?會自動調(diào)整降低最小量以達到1024的倍數(shù)
  • query_cache_type:控制?Query?Cache?功能的開關(guān),可以設(shè)置為0(OFF),1(ON)和2(DEMAND)三種,意義分別如下:

o?0(OFF):關(guān)閉?Query?Cache?功能,任何情況下都不會使用?Query?Cache

o?1(ON):開啟?Query?Cache?功能,但是當?SELECT?語句中使用的?SQL_NO_CACHE?提示后,將不使用Query?Cache

o?2(DEMAND):開啟?Query?Cache?功能,但是只有當?SELECT?語句中使用了?SQL_CACHE?提示后,才使用?Query?Cache

  • query_cache_wlock_invalidate:控制當有寫鎖定發(fā)生在表上的時刻是否先失效該表相關(guān)的?Query?Cache,如果設(shè)置為?1(TRUE),則在寫鎖定的同時將失效該表相關(guān)的所有?Query?Cache,如果設(shè)置為0(FALSE)則在鎖定時刻仍然允許讀取該表相關(guān)的?Query?Cache。

?

2、query?cache處理子查詢

?????query?cache?是以客戶端請求提交的?Query?為對象來處理的,只要客戶端請求的是一個?Query,無論這個?Query?是一個簡單的單表查詢還是多表?Join,亦或者是帶有子查詢的復(fù)雜?SQL,都被當作成一個?Query,不會被分拆成多個?Query?來進行?Cache。所以,存在子查詢的復(fù)雜?Query?也只會產(chǎn)生一個Cache對象,子查詢不會產(chǎn)生單獨的Cache內(nèi)容。UNION[ALL]?類型的語句也同樣如此。

?

3、query?cache?的效率

Query?Cache?的查找,是在?MySQL?接受到客戶端請求后在對?Query?進行權(quán)限驗證之后,SQL?解析之前。當?MySQL?接受到客戶端的SQL后,僅僅只需要對其進行相應(yīng)的權(quán)限驗證后就會通過?Query?Cache?來查找結(jié)果,甚至都不需要經(jīng)過?Optimizer?(查詢優(yōu)化器)模塊進行執(zhí)行計劃的分析優(yōu)化,更不許要發(fā)生任何存儲引擎的交互,減少了大量的磁盤?IO?和?CPU?運算,所以效率非常高。

?

4、query?cache的失效

為了保證?Query?Cache?中的內(nèi)容與是實際數(shù)據(jù)絕對一致,當表中的數(shù)據(jù)有任何變化,包括新增,修改,刪除等,都會使所有引用到該表的?SQL?的?Query?Cache?失效。

?

5、query?cache導(dǎo)致系統(tǒng)整體性能下降

當開啟了?Query?Cache?之后,尤其是當我們的?query_cache_type?參數(shù)設(shè)置為?1?以后,MySQL?會對每個?SELECT?語句都進行?Query?Cache?查找,查找操作雖然比較簡單,但仍然也是要消耗一些?CPU?運算資源的。而由于?Query?Cache?的失效機制的特性,可能由于表上的數(shù)據(jù)變化比較頻繁,大量的?Query?Cache?頻繁的被失效,所以?Query?Cache?的命中率就可能比較低下。所以有些場景下,Query?Cache?不僅不能提高效率,反而可能造成負面影響。

?

6、query?cache的幾種狀態(tài)參數(shù)(使用show?status?like'%Qcache%'語句查看)

  • Qcache_free_blocks:目前還處于空閑狀態(tài)的?Query?Cache?中內(nèi)存?Block?數(shù)目
  • Qcache_free_memory:目前還處于空閑狀態(tài)的?Query?Cache?內(nèi)存總量
  • Qcache_hits:Query?Cache?命中次數(shù)
  • Qcache_inserts:向?Query?Cache?中插入新的?Query?Cache?的次數(shù),也就是沒有命中的次數(shù)
  • Qcache_lowmem_prunes:當?Query?Cache?內(nèi)存容量不夠,需要從中刪除老的?Query?Cache?以給新的?Cache?對象使用的次數(shù)
  • Qcache_not_cached:沒有被?Cache?的?SQL?數(shù),包括無法被?Cache?的?SQL?以及由于?query_cache_type?設(shè)置的不會被?Cache?的?SQL
  • Qcache_queries_in_cache:目前在?Query?Cache?中的?SQL?數(shù)量
  • Qcache_total_blocks:Query?Cache?中總的?Block?數(shù)量

七、存儲引擎

1、在線交易范疇內(nèi)的表都統(tǒng)一使用innodb存儲引擎,而不使用myisam的原因

n?myisam不支持事務(wù);如果存在myisam與innodb混用的話,事務(wù)數(shù)據(jù)的一致性存在風(fēng)險。

n?myisam讀寫阻塞,不適用于高并發(fā)環(huán)境;innodb支持行級鎖。

n?myisam不支持在線備份,配置復(fù)制時可能需要停機或者長時間鎖表。

n?myisam不夠可靠,容易損壞丟失數(shù)據(jù)。

n?如果兩種引擎混用,會給資源分配帶來問題。因為有很多參數(shù)和設(shè)置需要停庫才能修改,為了減少停庫次數(shù),我們目前都是采用預(yù)先最大化分配足額內(nèi)存和磁盤空間的方式去做的。而myisam和innodb在內(nèi)存和空間使用上都不一樣,如果兩者混用,那分配的時候就很難兩方都照顧到。如果兩者都按比例分配,很可能存在資源不能充分利用的情況;且隨著業(yè)務(wù)的變化,需要調(diào)整的話,也會存在停機問題。

n?運維需要收集很多的運行狀態(tài)數(shù)據(jù),innodb有非常多的狀態(tài)數(shù)據(jù)可收集;而對于myisam引擎,能收集到的數(shù)據(jù)非常有限,不利于我們做監(jiān)控和容量規(guī)劃。

2、查看存儲引擎

n?查看支持的存儲引擎

show?engines

n?查看mysql默認的存儲引擎

show?variables?like?"%storage_engine%"

n?查看某個表用了什么引擎(在顯示結(jié)果參數(shù)engine后面的就表示當前用的存儲引擎)

????show?create?table?表名

八、mysql架構(gòu)圖

?架構(gòu)示意簡圖

?

? mysql基本操作

?

模塊間的關(guān)系圖

? mysql基本操作

九、Mysql中的數(shù)據(jù)類型

1、數(shù)字日期類型

常用的時間存儲格式主要有 datetime date timestamp 。從存儲空間來看 timestamp??4 個字節(jié),而其他, date?3 個字節(jié), datetime?8 個字節(jié),而 timestamp 只能存儲 1970 年之后的時間。

2、字符類型

char(M) 是靜態(tài)長度類型,存放長度以字符數(shù)來計算,所以最終存儲長度是基于字符集的, latin1 最大存儲長度為 255 字節(jié), gbk 510 字節(jié)。 mysql5.0.3 以前,如果定義的 M 值超過 255 mysql 會自動將 char 類型轉(zhuǎn)換為可以存入對應(yīng)數(shù)據(jù)量的 text 類型,而 mysql5.0.3 以后,所以超過 255 的定義都會直接拒絕,不再自動轉(zhuǎn)換。

varchar(M) 屬于動態(tài)存儲長度類型,僅存儲占實際存儲數(shù)據(jù)的長度。在 mysql5.0.3 以前 varchar 最大只能存放 255 個字符,占用存儲空間的實際大小與字符集有關(guān)。從 5.0.3 開始, varchar 的最大存儲現(xiàn)在已經(jīng)改為字節(jié)數(shù)。而且不再有單個字段的限制,而是除 text blog 類型字段外單條記錄最大不超過 65536bytes 。不過 M 仍然表示字符數(shù),當實際數(shù)據(jù)在 255 字節(jié)之內(nèi)時,會使用 1 個字節(jié)來存放實際長度,而大于 255 字節(jié)時,則需要使用 2 字節(jié)來存放。

?

?

mysql基本操作


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色达县| 河北省| 砀山县| 周口市| 蛟河市| 三明市| 德昌县| 大洼县| 大余县| 宁阳县| 苍梧县| 甘洛县| 东安县| 乳山市| 攀枝花市| 祁门县| 若羌县| 渑池县| 山西省| 安陆市| 连山| 新乡市| 合阳县| 和林格尔县| 怀安县| 固镇县| 陇川县| 丰原市| 福鼎市| 雷州市| 沙湾县| 和田县| 延寿县| 曲阜市| 福鼎市| 汉沽区| 竹北市| 阳高县| 大英县| 普定县| 枝江市|