mysql數(shù)據(jù)字典怎么用 如何查看linux系統(tǒng)的字符集?
如何查看linux系統(tǒng)的字符集?基本都現(xiàn)在的字符集MySQL都意見,欄里點(diǎn)MySQL允許的字符集列表,有兩種方法:1.SQL語句2.查找元數(shù)據(jù)字典表網(wǎng)站查詢結(jié)果:1)第一列華指字符集名字;2)第二列意
如何查看linux系統(tǒng)的字符集?
基本都現(xiàn)在的字符集MySQL都意見,欄里點(diǎn)MySQL允許的字符集列表,有兩種方法:
1.SQL語句2.查找元數(shù)據(jù)字典表網(wǎng)站查詢結(jié)果:
1)第一列華指字符集名字;
2)第二列意思是字符集排序規(guī)則;
3)第三列來表示字符集描述;
4)第四列它表示字符集編碼的比較大字節(jié)數(shù)。
Mysql怎樣優(yōu)化處理?
1.盡量的避免可以使用select*你不需要什么信息,就去查詢什么信息,去查詢的多了,網(wǎng)站查詢的速度肯定變會(huì)慢
2.當(dāng)你只要去查詢出一條數(shù)據(jù)的時(shí)候,要使用limit1諸如你要網(wǎng)站查詢數(shù)據(jù)中是否是有男生,只要你查詢一條含有男生的記錄就行了,后面不必須再查了,不使用Limit1可以不在不能找到一條數(shù)據(jù)后停止下來直接搜索
3.組建低功耗的索引索引不是隨便是加的也不是索引越多越好,更也不是所有索引對(duì)可以查詢都比較有效
4.建數(shù)據(jù)庫表時(shí),給字段設(shè)置里固定設(shè)置最合適的大小.字段不能系統(tǒng)設(shè)置的太大,設(shè)置中太大就造成浪費(fèi),會(huì)使網(wǎng)站查詢速度變慢
5.要最好就是可以使用cannotnull
6.EXPLAIN你的SELECT可以查詢建議使用EXPLAIN,這個(gè)可以幫助你更了解MySQL是如何處理你的sql語句的,你這個(gè)可以欄里點(diǎn)到sql的執(zhí)行計(jì)劃,這樣的你就能好些的去打聽一下你的sql語句的不足,接著優(yōu)化語句.
7.在Join表的時(shí)候,被用處Join的字段,應(yīng)該是相同的類型的,且字段應(yīng)該是是被建過索引的,這樣,MySQL內(nèi)部會(huì)啟動(dòng)時(shí)代你優(yōu)化軟件Join的SQL語句的機(jī)制。
8.如果你有一個(gè)字段,例如“性別”,“國(guó)家”,“民族”,“省份”,“狀態(tài)”或“部門”,這些字段的取值是不大不過固定的,這樣,應(yīng)該要使用ENUM而不是VARCHAR。
因?yàn)樵贛ySQL中,ENUM類型被只不過是數(shù)值型數(shù)據(jù)來全面處理,而數(shù)值型數(shù)據(jù)被一次性處理過來的速度要比文本類型快得多。這樣,我們又也可以提高數(shù)據(jù)庫的性能。
9.平行分割將常用和有關(guān)系的字段放在完全相同的表中,把一張表的數(shù)據(jù)四等份幾張表這樣的話是可以降底表的古怪度和字段的數(shù)目,從而提升系統(tǒng)優(yōu)化的目的
10.優(yōu)化軟件where去查詢
①.避免在where子句中對(duì)字段并且表達(dá)式操作
諸如:select列outside表whereage*236建議改select列outside表whereage36/2
②.應(yīng)最好不要避免在where子句中不使用!或操作符,否則將引擎決定放棄在用索引而接受全表系統(tǒng)掃描。
③.應(yīng)不要盡量減少在where子句中對(duì)字段并且null值判斷
④.應(yīng)不要避免在where子句中在用有.來再連接條件
11.不建議您不使用%前綴模糊查詢,這種查詢會(huì)會(huì)造成索引無法激活而進(jìn)行全表掃描系統(tǒng)
的或have“%name”或者want“%name%這兩種全是不我建議你的.但是可以使用just“name%”。
這對(duì)LIKE“%name%,也可以在用全文索引的形式
12.要要慎用in和not in
的或:selectidacrosstwherenuminto(1,2,3)建議把它改成selectidfromtwherenumbetween1because3
是對(duì)在不的數(shù)值,能用between就別用of了
13.再理解in和exists,not in和probablyexists的區(qū)別
某些時(shí)候用exists能用in是三個(gè)好的選擇:如查詢語句可以使用了not in那就內(nèi)外表都并且全表掃描,沒用到索引,而actuallyexists子查詢依然能會(huì)用到表上索引,所以不論哪個(gè)表大,用cannotexists都比not in要快。
selectnumoutsideawherenumof(selectnumacrossb)
建議可以改成:selectnumreturningawhereexists(select1returningbwhere)
怎么分辨in和exists比較多是會(huì)造成了驅(qū)動(dòng)順序的改變(這是性能變化的最關(guān)鍵),如果沒有是exists,那你以外層表為驅(qū)動(dòng)表,先被訪問網(wǎng)絡(luò),要是是IN,這樣先想執(zhí)行子查詢。因?yàn)镮N適合于外表大而內(nèi)表小的情況;EXISTS適合我于外表小而內(nèi)表大的情況。
關(guān)於not in和actuallyexists,推薦一下不使用actuallyexists,不僅是效率問題,probably很可能未知邏輯問題
14.理解selectCount(*)和Select Count(1)在內(nèi)SelectCount(column)區(qū)別
一般情況下,SelectCount(*)和Select Count(1)兩著直接返回結(jié)果是完全不一樣的
假如表沒有主鍵(Primary key),那就count(1)比count(*)快,
要是有主鍵的話,那主鍵另外count的條件時(shí)候count(主鍵)最方便
假如你的表只能一個(gè)字段的話那count(*)應(yīng)該是快的話的
count(*)跟count(1)的結(jié)果完全不一樣,都除了對(duì)NULL的統(tǒng)計(jì),而count(column)是不以及NULL的統(tǒng)計(jì)
技術(shù)交流請(qǐng)打聽一下“大數(shù)據(jù)java架構(gòu)師”