因為不能用Truncate(因為只是刪除其中少部分?jǐn)?shù)據(jù)),由于要求此表中的數(shù)據(jù)只保留當(dāng)天的數(shù)據(jù),所以每當(dāng)在凌晨的某一時刻當(dāng)其他程序處理完其中的數(shù)據(jù)后要刪除該表中昨天以及以前的數(shù)據(jù),使用delete刪除表中的上百萬條記錄時,MySQL刪除速度非常緩慢每一萬條記錄需要大概4分鐘左右,這樣刪除所有無用數(shù)據(jù)要達(dá)到八個小時以上,這是難以接受的。。
網(wǎng)上搜到此文(http://blog.csdn.net/gao14401...[MSSQL、MySQL 數(shù)據(jù)庫刪除大批量千萬級百萬級數(shù)據(jù)的優(yōu)化]
其中說到每次刪除記錄,數(shù)據(jù)庫都要相應(yīng)地更新索引,這是很慢的IO操作,而且后面索引碎片越來越多,就更慢。
我采取其提供的刪除索引再刪除數(shù)據(jù)再重建索引的方法,并沒有發(fā)現(xiàn)刪除速度有提升,而且時不時還會死鎖
我的數(shù)據(jù)表結(jié)構(gòu)如下:
CREATE TABLE `tbplaylog_copy` (
`Pid` int(11) NOT NULL AUTO_INCREMENT,
`Company_id` int(11) NOT NULL DEFAULT '0' COMMENT '??id',
`uid` int(11) NOT NULL COMMENT '"??ID"',
`Devno` varchar(32) CHARACTER SET utf8 NOT NULL COMMENT '????',
`Ad` int(11) NOT NULL COMMENT '????',
`MakeTime` int(11) NOT NULL COMMENT '????',
`LastTime` int(11) NOT NULL COMMENT '??????',
`StartTime` int(11) NOT NULL COMMENT '???????(0,24*60)',
`EndPoint` int(11) NOT NULL COMMENT '????????(0,24*60)',
`Status` int(11) NOT NULL COMMENT '???1-????0-???',
`Note` varchar(128) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '????',
`Valid` int(11) NOT NULL COMMENT '???',
`Type` int(11) NOT NULL COMMENT '0,???1????2???',
`PlayStartTime` int(11) NOT NULL DEFAULT '0',
`PlayEndTime` int(11) NOT NULL DEFAULT '0',
`DownloadTime` int(11) NOT NULL DEFAULT '0',
`DeleteTime` int(11) NOT NULL DEFAULT '0',
`TemplateId` int(11) NOT NULL DEFAULT '0',
`ad_adnum` int(11) NOT NULL COMMENT '???ad_id',
`length` int(11) NOT NULL,
`DownloadPercent` int(11) NOT NULL DEFAULT '0' COMMENT '???????',
`DownloadSuccess` int(11) NOT NULL DEFAULT '0' COMMENT '\r\n0-??\r\n1-??”',
`Playlist_id` int(11) NOT NULL,
`Delete` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1???',
`Reset` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1???',
`source` int(2) NOT NULL,
`distribute` int(2) NOT NULL DEFAULT '-2' COMMENT '0??-2??',
PRIMARY KEY (`Pid`),
KEY `starttime` (`StartTime`) USING BTREE,
KEY `Devno` (`Devno`),
KEY `playstarttime` (`PlayStartTime`),
KEY `index_playlist_id` (`Playlist_id`),
KEY `ad` (`Ad`),
KEY `company_id` (`Company_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8760113 DEFAULT CHARSET=latin1;
我的刪除語句
DELETE * FROM tbplaylog WHERE tbplaylog.StartTime < ? OR tbplaylog.StartTime > ? ORDER BY Pid LIMIT 10000
數(shù)據(jù)量為1000w條
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。