因為不能用Truncate(因為只是刪除其中少部分數(shù)據(jù)),由于要求此表中的數(shù)據(jù)只保留當(dāng)天的數(shù)據(jù),所以每當(dāng)在凌晨的某一時刻當(dāng)其他程序處理完其中的數(shù)據(jù)后要刪除該表中昨天以及以前的數(shù)據(jù),使用delete刪除表中的上百萬條記錄時,MySQL刪除速度非常緩慢每一萬條記錄需要大概4分鐘左右,這樣刪除所有無用數(shù)據(jù)要達到八個小時以上,這是難以接受的。。
網(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è)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通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)師。