MySQL求类型为GX的平均积分_mysql基本操作
一、連接操作
格式:mysql-h主機地址?-u用戶名?-p用戶密碼
例:連接到遠程主機上的mysql假設遠程主機的IP為:110.110.110.110用戶
名為root,密碼為abcd123則鍵入以下命令:
mysql-h110.110.110.110-uroot-pabcd123
二、用戶級操作
1、select?user()?查看自己的用戶名
2、Linux命令ps?-el?|?grep?mysqld用來檢測mysql服務器是否在運行。如果結果為:
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
就說明服務器已經運行起來了。
3、修改密碼
update?user?set?password="新密碼"?where?user="用戶名"。
4、新加用戶
Grant?select?on?數據庫.*to?用戶名@登錄主機?identified?by?“密碼”。
三、數據庫操作
1、創建數據庫?create?database?
2、顯示數據庫?show?database;
3、刪除數據庫?drop?database?
4、連接數據庫?use?
5、當前選中的數據庫?select?database();
6、查看數據庫編碼SHOW?VARIABLES?LIKE?'character%';
四、數據表操作
1、創建數據表?create?table?(?,);
2、查看表結構?describe?表名
3、獲取表結構?desc表名,或者show?columns?from?表名;
4、刪除數據表?drop?table
5、表插入數據?insert?into?表名?(字段1,字段2......)?values?("值1",“值2”...),....("值1","值2");
6、查詢表中數據?select?fromwhere?,查看前2行數據?select*from表名?limit(0,2)
7、刪除表中數據?delete?from?表名?where?表達式
8、修改表中數據?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?新表名
五、備份數據庫
1、導出整個數據庫
導出文件默認是存在mysql\bin目錄下
mysqldump?-u?用戶名?-p?數據庫名?>?導出的文件名
mysqldump?-u?user_name?-p123456?database_name?>?outfile_name.sql
2、導出一個表
mysqldump?-u?用戶名?-p?數據庫名?表名>?導出的文件名
mysqldump?-u?user_name?-p?database_name?table_name?>?outfile_name.sql
3、導出一個數據庫結構
mysqldump?-u?user_name?-p?-d?–add-drop-table?database_name?>?outfile_name.sql
-d?沒有數據?–add-drop-table?在每個create語句之前增加一個drop?table
4、帶語言參數導出
mysqldump?-uroot?-p?–default-character-set=latin1?–set-charset=gbk?–skip-opt??????database_name?>?outfile_name.sql
5、導入文件?source?文件路徑??mysql>source?d:\mydb.sql
注:導出文件時在操作系統控制臺的ySQL\MySQL?Server?5.5\bin目錄下執行?,導入文件是在mysql控制臺執行
六、query?cache
Query?Cache?緩存了我們客戶端提交給?MySQL?的?SELECT?語句以及該語句的結果集。大概來講,就是將?SELECT?語句和語句的結果做了一個?HASH?映射關系然后保存在一定的內存區域中。
1、query?cache?的五個變量(使用show?variable?like?'%query_cache%'語句查看)
query_cache_limit:允許?Cache?的單條?Query?結果集的最大容量,默認是1MB,超過此參數設置的?Query?結果集將不會被?Cache
query_cache_min_res_unit:設置?Query?Cache?中每次分配內存的最小空間大小,也就是每個?Query?的?Cache?最小占用的內存空間大小
query_cache_size:設置?Query?Cache?所使用的內存大小,默認值為0,大小必須是1024的整數倍,如果不是整數倍,MySQL?會自動調整降低最小量以達到1024的倍數
query_cache_type:控制?Query?Cache?功能的開關,可以設置為0(OFF),1(ON)和2(DEMAND)三種,意義分別如下:
o?0(OFF):關閉?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:控制當有寫鎖定發生在表上的時刻是否先失效該表相關的?Query?Cache,如果設置為?1(TRUE),則在寫鎖定的同時將失效該表相關的所有?Query?Cache,如果設置為0(FALSE)則在鎖定時刻仍然允許讀取該表相關的?Query?Cache。
2、query?cache處理子查詢
query?cache?是以客戶端請求提交的?Query?為對象來處理的,只要客戶端請求的是一個?Query,無論這個?Query?是一個簡單的單表查詢還是多表?Join,亦或者是帶有子查詢的復雜?SQL,都被當作成一個?Query,不會被分拆成多個?Query?來進行?Cache。所以,存在子查詢的復雜?Query?也只會產生一個Cache對象,子查詢不會產生單獨的Cache內容。UNION[ALL]?類型的語句也同樣如此。
3、query?cache?的效率
Query?Cache?的查找,是在?MySQL?接受到客戶端請求后在對?Query?進行權限驗證之后,SQL?解析之前。當?MySQL?接受到客戶端的SQL后,僅僅只需要對其進行相應的權限驗證后就會通過?Query?Cache?來查找結果,甚至都不需要經過?Optimizer?(查詢優化器)模塊進行執行計劃的分析優化,更不許要發生任何存儲引擎的交互,減少了大量的磁盤?IO?和?CPU?運算,所以效率非常高。
4、query?cache的失效
為了保證?Query?Cache?中的內容與是實際數據絕對一致,當表中的數據有任何變化,包括新增,修改,刪除等,都會使所有引用到該表的?SQL?的?Query?Cache?失效。
5、query?cache導致系統整體性能下降
當開啟了?Query?Cache?之后,尤其是當我們的?query_cache_type?參數設置為?1?以后,MySQL?會對每個?SELECT?語句都進行?Query?Cache?查找,查找操作雖然比較簡單,但仍然也是要消耗一些?CPU?運算資源的。而由于?Query?Cache?的失效機制的特性,可能由于表上的數據變化比較頻繁,大量的?Query?Cache?頻繁的被失效,所以?Query?Cache?的命中率就可能比較低下。所以有些場景下,Query?Cache?不僅不能提高效率,反而可能造成負面影響。
6、query?cache的幾種狀態參數(使用show?status?like'%Qcache%'語句查看)
Qcache_free_blocks:目前還處于空閑狀態的?Query?Cache?中內存?Block?數目
Qcache_free_memory:目前還處于空閑狀態的?Query?Cache?內存總量
Qcache_hits:Query?Cache?命中次數
Qcache_inserts:向?Query?Cache?中插入新的?Query?Cache?的次數,也就是沒有命中的次數
Qcache_lowmem_prunes:當?Query?Cache?內存容量不夠,需要從中刪除老的?Query?Cache?以給新的?Cache?對象使用的次數
Qcache_not_cached:沒有被?Cache?的?SQL?數,包括無法被?Cache?的?SQL?以及由于?query_cache_type?設置的不會被?Cache?的?SQL
Qcache_queries_in_cache:目前在?Query?Cache?中的?SQL?數量
Qcache_total_blocks:Query?Cache?中總的?Block?數量
七、存儲引擎
1、在線交易范疇內的表都統一使用innodb存儲引擎,而不使用myisam的原因
n?myisam不支持事務;如果存在myisam與innodb混用的話,事務數據的一致性存在風險。
n?myisam讀寫阻塞,不適用于高并發環境;innodb支持行級鎖。
n?myisam不支持在線備份,配置復制時可能需要停機或者長時間鎖表。
n?myisam不夠可靠,容易損壞丟失數據。
n?如果兩種引擎混用,會給資源分配帶來問題。因為有很多參數和設置需要停庫才能修改,為了減少停庫次數,我們目前都是采用預先最大化分配足額內存和磁盤空間的方式去做的。而myisam和innodb在內存和空間使用上都不一樣,如果兩者混用,那分配的時候就很難兩方都照顧到。如果兩者都按比例分配,很可能存在資源不能充分利用的情況;且隨著業務的變化,需要調整的話,也會存在停機問題。
n?運維需要收集很多的運行狀態數據,innodb有非常多的狀態數據可收集;而對于myisam引擎,能收集到的數據非常有限,不利于我們做監控和容量規劃。
2、查看存儲引擎
n?查看支持的存儲引擎
show?engines
n?查看mysql默認的存儲引擎
show?variables?like?"%storage_engine%"
n?查看某個表用了什么引擎(在顯示結果參數engine后面的就表示當前用的存儲引擎)
show?create?table?表名
八、mysql架構圖
架構示意簡圖
模塊間的關系圖
九、Mysql中的數據類型
1、數字日期類型
常用的時間存儲格式主要有datetime、date、timestamp。從存儲空間來看timestamp??4個字節,而其他,date?3個字節,datetime?8個字節,而timestamp只能存儲1970年之后的時間。
2、字符類型
char(M)是靜態長度類型,存放長度以字符數來計算,所以最終存儲長度是基于字符集的,latin1最大存儲長度為255字節,gbk為510字節。mysql5.0.3以前,如果定義的M值超過255,mysql會自動將char類型轉換為可以存入對應數據量的text類型,而mysql5.0.3以后,所以超過255的定義都會直接拒絕,不再自動轉換。
varchar(M)屬于動態存儲長度類型,僅存儲占實際存儲數據的長度。在mysql5.0.3以前varchar最大只能存放255個字符,占用存儲空間的實際大小與字符集有關。從5.0.3開始,varchar的最大存儲現在已經改為字節數。而且不再有單個字段的限制,而是除text和blog類型字段外單條記錄最大不超過65536bytes。不過M仍然表示字符數,當實際數據在255字節之內時,會使用1個字節來存放實際長度,而大于255字節時,則需要使用2字節來存放。
總結
以上是生活随笔為你收集整理的MySQL求类型为GX的平均积分_mysql基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一支血清上万元!为何有的蛇毒这么毒?
- 下一篇: 咸粽子销量是甜粽子4倍上热搜 南北网友又