mysql進(jìn)階

EQUI JOIN: join、outer join
SEMI JOIN: from a,b

一顷级、索引

//存儲過程至批量數(shù)據(jù)導(dǎo)入
create PROCEDURE bigData_test(IN num int,IN begin_num int)
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE y INT DEFAULT begin_num;
WHILE i < num DO
INSERT INTO bs_user VALUES (y,concat(y,'.jpg'),concat('tangyb',y),concat('tangyb',y),concat('tangyb',y),NULL,NULL,'00');
SET i = i + 1;
SET y = y + 1;
END WHILE;
END

//執(zhí)行存儲函數(shù)
START TRANSACTION;
call bigData_test(100000,1); /*調(diào)用存儲過程(手動開啟事務(wù)愕把,否則每次insert都會commit森爽,會導(dǎo)致執(zhí)行速度慢到令人發(fā)指)
commit;

//新建并查詢索引(自己測試的時(shí)候先新增數(shù)據(jù)在建立索引,否則在添加數(shù)據(jù)的時(shí)候等候時(shí)間太長)
ALTER TABLE bs_user ADD INDEX index_uname (u_name); /給bs_user添加一個(gè)名為index_uname的索引
show index from bs_user; /
查詢bs_user表中的索引

小知識

show global variables like '%query_cache%'; /查詢query_cache 是否開啟(走索引第一次會很慢爬迟,第二次會很快)
show variables like '%storage_engine%'; /
表引擎使用innodb.第一次查詢也會走數(shù)據(jù)文件付呕,第二次直接走buffer_pool,也比直接查詢數(shù)據(jù)文件要快

原理分析:http://blog.jobbole.com/24006/

二、分表徽职、分庫、分區(qū)

在大數(shù)據(jù)的基礎(chǔ)上需要考慮這些數(shù)據(jù)主要是讀還是更新(根據(jù)不同的操作也可以選擇不同特征的數(shù)據(jù)庫说订,冷熱數(shù)據(jù)分離)
分表:垂直-按照字段(如:文章的內(nèi)容常常用于查詢潮瓶,訪問量常常更新)
水平-保持表的結(jié)構(gòu)相同,只是把數(shù)據(jù)放到不同的表中(user表:user1,user2)埂伦,根據(jù)uid段來區(qū)分11000000放到user1思恐,10000012000000放到user2等等
每張表都需要帶上膊毁,MYD數(shù)據(jù)文件类早,.MYI索引文件,.frm表結(jié)構(gòu)文件

分區(qū):將一張表的數(shù)據(jù)分為N個(gè)區(qū)塊缭召,可以放置在相同或是不同的磁盤上逆日,散列在不同的位置。操作的同一張表名室抽,由數(shù)據(jù)庫自己選擇分區(qū)

分庫:當(dāng)一臺服務(wù)器的磁盤IO遇到瓶頸或是磁盤剩余空間過小等等,可以采用分庫到不同服務(wù)器數(shù)據(jù)庫

簡單介紹:http://www.cnblogs.com/langtianya/p/4997768.html
存在問題:http://wentao365.iteye.com/blog/1740874

一種是表鎖定(myisam存儲引擎)晓折,一個(gè)是行鎖定(innodb存儲引擎)

mysql大約執(zhí)行流程

1兽泄、接收到sql;
2、把sql放到排隊(duì)隊(duì)列中;
3胃珍、執(zhí)行sql;
4蜓陌、返回執(zhí)行結(jié)果。

分表

a填抬,做mysql集群隧期,用調(diào)度算法選擇數(shù)據(jù)庫(但是每張表的數(shù)據(jù)還是那么多,只是改變了連接隊(duì)列方面的效率厌秒,而且耗硬件)
b,預(yù)計(jì)會出現(xiàn)大數(shù)據(jù)量并訪問頻繁檐晕,按照user1,user2的方式分表(縮短每張表的數(shù)據(jù),但是前期如果沒有規(guī)劃好个榕,后期就需要修改大量的sql)
c芥喇,merge存儲引擎來實(shí)現(xiàn)分表(用一個(gè)總表allUser,然后做user1和User2),具體http://www.cnblogs.com/miketwais/articles/mysql_partition.html


1,存儲引擎的使用不同,冷數(shù)據(jù)使用MyIsam 可以有更好的查詢數(shù)據(jù)械馆∥渫ǎ活躍數(shù)據(jù)癞谒,可以使用Innodb ,可以有更好的更新速度扒磁。
2,對冷數(shù)據(jù)進(jìn)行更多的從庫配置,因?yàn)楦嗟牟僮魇遣樵兦羟梗@樣來加快查詢速度。對熱數(shù)據(jù)默赂,可以相對有更多的主庫的橫向分表處理忆植。
3,對于一些特殊的活躍數(shù)據(jù)谒臼,也可以考慮使用memcache ,redis之類的緩存,等累計(jì)到一定量再去更新數(shù)據(jù)庫.

三拾氓、引擎

mysql中 myisam 引擎不支持事務(wù)的概念底哥,多用于數(shù)據(jù)倉庫這樣查詢多而事務(wù)少的情況,速度較快趾徽。
mysql中 innoDB 引擎支持事務(wù)的概念孵奶,多用于web網(wǎng)站后臺等實(shí)時(shí)的中小型事務(wù)處理后臺。

四、優(yōu)化

//檢索速度的提升
1湿颅、like '%tangyb' 這種前面模糊匹配會嚴(yán)重影響檢索速度
2粥诫、limit 的offset 是取offset+N行 并不是從offset開始,所以offset特別大的時(shí)候 影響效率
3、count()會統(tǒng)計(jì)所有行 谊囚,count(1)必須確保第一列不為null揉稚,否則不會統(tǒng)計(jì),所以mysql推薦使用count(
4搀玖、禁止使用外鍵(不適合分布式灌诅、高并發(fā))和存儲過程(不利于調(diào)試、擴(kuò)展猜拾、移植)
5、最好避免in的使用顽聂,最好在1000以內(nèi)
6盯仪、mybatis多用resultMap,禁止返回resultClass,減少耦合耀石,方便維護(hù)
7爸黄、表的設(shè)計(jì) 包括 id、gmt?_creat炕贵、gmt?_modified

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末称开,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子径荔,更是在濱河造成了極大的恐慌,老刑警劉巖总处,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胧谈,居然都是意外死亡荸频,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門稳强,熙熙樓的掌柜王于貴愁眉苦臉地迎上來和悦,“玉大人,你說我怎么就攤上這事褒繁♀珊觯” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵坝冕,是天一觀的道長坐梯。 經(jīng)常有香客問我刹帕,道長,這世上最難降的妖魔是什么蹋辅? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任侦另,我火速辦了婚禮,結(jié)果婚禮上褒傅,老公的妹妹穿的比我還像新娘。我一直安慰自己霹菊,他們只是感情好支竹,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布礼搁。 她就那樣靜靜地躺著,像睡著了一般馒吴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绪囱,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天莹捡,我揣著相機(jī)與錄音,去河邊找鬼篮赢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涣脚,可吹牛的內(nèi)容都是我干的寥茫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼芭梯,長吁一口氣:“原來是場噩夢啊……” “哼弄喘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起累奈,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤搞乏,失蹤者是張志新(化名)和其女友劉穎查描,沒想到半個(gè)月后柏卤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桥滨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腕侄,死狀恐怖拌汇,靈堂內(nèi)的尸體忽然破棺而出魁淳,到底是詐尸還是另有隱情,我是刑警寧澤息拜,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站仿滔,受9級特大地震影響腰埂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜志电,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一鱼蝉、第九天 我趴在偏房一處隱蔽的房頂上張望羔挡。 院中可真熱鬧呈野,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寸莫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盐数,已是汗流浹背帚屉。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工灰殴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敬特,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓牺陶,卻偏偏與公主長得像掰伸,于是被迫代替她去往敵國和親皱炉。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容