mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题
1、limit(選出10 到20 條)
select * from students order by id limit 9,10;
2、MySQL 會(huì)使用索引的操作符號(hào)
=,>,=,between,in,不帶%或者_(dá)開(kāi)頭的like
3、使用索引的缺點(diǎn)
1)減慢增刪改數(shù)據(jù)的速度;
2)占用磁盤(pán)空間;
3)增加查詢優(yōu)化器的負(fù)擔(dān);
當(dāng)查詢優(yōu)化器生成執(zhí)行計(jì)劃時(shí),會(huì)考慮索引,太多的索引會(huì)給查詢優(yōu)化
器增加工作量,導(dǎo)致無(wú)法選擇最優(yōu)的查詢方案;
4、分析索引效率
方法:在一般的SQL 語(yǔ)句前加上explain;
分析結(jié)果的含義:
1)table:表名;
2)type:連接的類(lèi)型,(ALL/Range/Ref)。其中ref 是最理想的;
3)possible_keys:查詢可以利用的索引名;
4)key:實(shí)際使用的索引;
5)key_len:索引中被使用部分的長(zhǎng)度(字節(jié));
6)ref:顯示列名字或者”const”(不明白什么意思);
7)rows:顯示MySQL 認(rèn)為在找到正確結(jié)果之前必須掃描的行數(shù);
8)extra:MySQL 的建議;
5、使用較短的定長(zhǎng)列
1)盡可能使用較短的數(shù)據(jù)類(lèi)型;
2)盡可能使用定長(zhǎng)數(shù)據(jù)類(lèi)型;
a)用char 代替varchar,固定長(zhǎng)度的數(shù)據(jù)處理比變長(zhǎng)的快些;
b)對(duì)于頻繁修改的表,磁盤(pán)容易形成碎片,從而影響數(shù)據(jù)庫(kù)的整體性
能;
c)萬(wàn)一出現(xiàn)數(shù)據(jù)表崩潰,使用固定長(zhǎng)度數(shù)據(jù)行的表更容易重新構(gòu)造。
使用固定長(zhǎng)度的數(shù)據(jù)行,每個(gè)記錄的開(kāi)始位置都是固定記錄長(zhǎng)度的倍數(shù),可以很
容易被檢測(cè)到,但是使用可變長(zhǎng)度的數(shù)據(jù)行就不一定了;
d)對(duì)于MyISAM 類(lèi)型的數(shù)據(jù)表,雖然轉(zhuǎn)換成固定長(zhǎng)度的數(shù)據(jù)列可以提高
性能,但是占據(jù)的空間也大;
6、使用not null 和enum
盡量將列定義為not null,這樣可使數(shù)據(jù)的出來(lái)更快,所需的空間更
少,而且在查詢時(shí),MySQL 不需要檢查是否存在特例,即null 值,從而優(yōu)化查
詢;
如果一列只含有有限數(shù)目的特定值,如性別,是否有效或者入學(xué)年份等,
在這種情況下應(yīng)該考慮將其轉(zhuǎn)換為enum 列的值,MySQL 處理的更快,因?yàn)樗?/p>
的enum 值在系統(tǒng)內(nèi)都是以標(biāo)識(shí)數(shù)值來(lái)表示的;
7、使用optimize table
對(duì)于經(jīng)常修改的表,容易產(chǎn)生碎片,使在查詢數(shù)據(jù)庫(kù)時(shí)必須讀取更多的
磁盤(pán)塊,降低查詢性能。具有可變長(zhǎng)的表都存在磁盤(pán)碎片問(wèn)題,這個(gè)問(wèn)題對(duì)blob
數(shù)據(jù)類(lèi)型更為突出,因?yàn)槠涑叽缱兓浅4蟆?梢酝ㄟ^(guò)使用optimize table 來(lái)
整理碎片,保證數(shù)據(jù)庫(kù)性能不下降,優(yōu)化那些受碎片影響的數(shù)據(jù)表。 optimize
table 可以用于MyISAM 和BDB 類(lèi)型的數(shù)據(jù)表。實(shí)際上任何碎片整理方法都是用
mysqldump 來(lái)轉(zhuǎn)存數(shù)據(jù)表,然后使用轉(zhuǎn)存后的文件并重新建數(shù)據(jù)表;
8、使用procedure analyse()
可以使用procedure analyse()顯示最佳類(lèi)型的建議,使用很簡(jiǎn)單,在
select 語(yǔ)句后面加上procedure analyse()就可以了;例如:
select * from students procedure analyse();
select * from students procedure analyse(16,256);
第二條語(yǔ)句要求procedure analyse()不要建議含有多于16 個(gè)值,或
者含有多于256 字節(jié)的enum 類(lèi)型,如果沒(méi)有限制,輸出可能會(huì)很長(zhǎng);
9、使用查詢緩存
1)查詢緩存的工作方式:
第一次執(zhí)行某條select 語(yǔ)句時(shí),服務(wù)器記住該查詢的文本內(nèi)容和查詢
結(jié)果,存儲(chǔ)在緩存中,下次碰到這個(gè)語(yǔ)句時(shí),直接從緩存中返回結(jié)果;當(dāng)更新數(shù)
據(jù)表后,該數(shù)據(jù)表的任何緩存查詢都變成無(wú)效的,并且會(huì)被丟棄。
2)配置緩存參數(shù):
變量:query_cache _type,查詢緩存的操作模式。有3 中模式,0:不
緩存;1:緩存查詢,除非與 select sql_no_cache 開(kāi)頭;2:根據(jù)需要只緩存
《mysql時(shí)間設(shè)置默認(rèn)值MySQL常見(jiàn)面試題》總結(jié)了關(guān)于學(xué)習(xí)mysql教程,對(duì)于我們來(lái)W WW.002pc .COM確實(shí)能學(xué)到不少知識(shí)。
那些以select sql_cache 開(kāi)頭的查詢; query_cache_size:設(shè)置查詢緩存的最
大結(jié)果集的大小,比這個(gè)值大的不會(huì)被緩存。
10、調(diào)整硬件
1)在機(jī)器上裝更多的內(nèi)存;
2)增加更快的硬盤(pán)以減少I(mǎi)/O 等待時(shí)間;
尋道時(shí)間是決定性能的主要因素,逐字地移動(dòng)磁頭是最慢的,一旦磁頭
定位,從磁道讀則很快;
更多:mysql時(shí)間設(shè)置默認(rèn)值MySQL常見(jiàn)面試題
https://www.002pc.comhttps://www.002pc.com/mysql/5381.html
你可能感興趣的面試題,MySQL,常見(jiàn)
No alive nodes found in your cluster
0踩
賞
0 贊
總結(jié)
以上是生活随笔為你收集整理的mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 点击文字可以选中相应的checkbox
- 下一篇: 2022-2028年中国二次元行业深度调