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