技术文摘

帝国CMS 多少数据分表好?已发布的数据怎么分表?

作者:雨祺   发表于:
浏览:154次    字数:6901  原创
级别:站长   总稿:76 篇,  月稿:2
帝国CMS 多少数据分表好?已发布的数据怎么分表?帝国cms百万数据怎么平均分表?数据量过大,已导致MYSQL数据对IO的操作读写量巨大,导致整个服务器负载过大。特别是帝国cms后台操作缓慢,尤其是数据量大的栏目,本人的站点没分表前,只要在后台点击数据量大的栏目时,打开非常慢,服务器负载瞬间100%,但是内存和cpu均在20%左右(2核心,4G内存,20M带宽)

帝国CMS 多少数据分表好?

1、数据库50G,应新建主表;

2、满5W条数据新建副表,并将最新建的副表设为当前存放表;【也有建议10W条数据分一次表的】

已发布的数据如何进行分表操作?已经发布的数据,比如一个数据表数据200W文章,如何平均把这些文章分配到20个数据分表里呢?一个表10w数据!很简单,直接打开数据库操作,这里演示将第二个5w数据移动到新建立的数据表!请先创建副表!

第一步,复制副表_1到副表_2

  1. INSERT INTO phome_ecms_news_data_2 
  2. SELECT * FROM phome_ecms_news_data_1 T2 
  3. WHERE T2.ID>= 50001 AND T2.ID<= 100000; 
第二步,修改主表的数据,使之指引到副表_2
  1. update phome_ecms_news set stb=REPLACE(stb,1,2) 
  2. WHERE ID>= 50001 AND ID<= 100000; 
第三步,删除副表_1中已经移动完成的数据
  1. DELETE FROM phome_ecms_news_data_1 
  2. WHERE ID>= 50001 AND ID<= 100000; 

帝国cms百万数据如何平均分配到分表,sql一个一个写也是挺慢的,所以好心的鄙人给大家写好了!
 

  1. #---------------------------第1组分表SQL------------------------------ 
  2. #副表_2数据迁移,迁移50001到100000之间的数据 
  3. INSERT INTO phome_ecms_news_data_2 
  4. SELECT * FROM phome_ecms_news_data_1 T2 
  5. WHERE T2.ID>= 50001 AND T2.ID<= 100000; 
  6.  
  7. #更新主表与副表_2的关系 
  8. update phome_ecms_news set stb=REPLACE(stb,1,2) 
  9. WHERE ID>= 50001 AND ID<= 100000; 
  10.  
  11. #删除副表_2中已经移动成功的数据 
  12. DELETE FROM phome_ecms_news_data_1 
  13. WHERE ID>= 50001 AND ID<= 100000; 
  14.  
  15. #---------------------------第2组分表SQL------------------------------ 
  16. #副表_3数据迁移,迁移100001到150000之间的数据 
  17. INSERT INTO phome_ecms_news_data_3 
  18. SELECT * FROM phome_ecms_news_data_1 T2 
  19. WHERE T2.ID>= 100001 AND T2.ID<= 150000; 
  20.  
  21. #更新主表与副表_3的关系 
  22. update phome_ecms_news set stb=REPLACE(stb,1,3) 
  23. WHERE ID>= 100001 AND ID<= 150000; 
  24.  
  25. #删除副表_3中已经移动成功的数据 
  26. DELETE FROM phome_ecms_news_data_1 
  27. WHERE ID>= 100001 AND ID<= 150000; 
  28.  
  29. #---------------------------第3组分表SQL------------------------------ 
  30. #副表_4数据迁移,迁移150001到200000之间的数据 
  31. INSERT INTO phome_ecms_news_data_4 
  32. SELECT * FROM phome_ecms_news_data_1 T2 
  33. WHERE T2.ID>= 150001 AND T2.ID<= 200000; 
  34.  
  35. #更新主表与副表_4的关系 
  36. update phome_ecms_news set stb=REPLACE(stb,1,4) 
  37. WHERE ID>= 150001 AND ID<= 200000; 
  38.  
  39. #删除副表_4中已经移动成功的数据 
  40. DELETE FROM phome_ecms_news_data_1 
  41. WHERE ID>= 150001 AND ID<= 200000; 
  42.  
  43. #---------------------------第4组分表SQL------------------------------ 
  44. #副表_5数据迁移,迁移200001到250000之间的数据 
  45. INSERT INTO phome_ecms_news_data_5 
  46. SELECT * FROM phome_ecms_news_data_1 T2 
  47. WHERE T2.ID>= 200001 AND T2.ID<= 250000; 
  48.  
  49. #更新主表与副表_5的关系 
  50. update phome_ecms_news set stb=REPLACE(stb,1,5) 
  51. WHERE ID>= 200001 AND ID<= 250000; 
  52.  
  53. #删除副表_5中已经移动成功的数据 
  54. DELETE FROM phome_ecms_news_data_1 
  55. WHERE ID>= 200001 AND ID<= 250000; 
  56.  
  57. #---------------------------第5组分表SQL------------------------------ 
  58. #副表_6数据迁移,迁移250001到300000之间的数据 
  59. INSERT INTO phome_ecms_news_data_6 
  60. SELECT * FROM phome_ecms_news_data_1 T2 
  61. WHERE T2.ID>= 250001 AND T2.ID<= 300000; 
  62.  
  63. #更新主表与副表_6的关系 
  64. update phome_ecms_news set stb=REPLACE(stb,1,6) 
  65. WHERE ID>= 250001 AND ID<= 300000; 
  66.  
  67. #删除副表_6中已经移动成功的数据 
  68. DELETE FROM phome_ecms_news_data_1 
  69. WHERE ID>= 250001 AND ID<= 300000; 
  70.  
  71. #---------------------------第6组分表SQL------------------------------ 
  72. #副表_7数据迁移,迁移300001到350000之间的数据 
  73. INSERT INTO phome_ecms_news_data_7 
  74. SELECT * FROM phome_ecms_news_data_1 T2 
  75. WHERE T2.ID>= 300001 AND T2.ID<= 350000; 
  76.  
  77. #更新主表与副表_7的关系 
  78. update phome_ecms_news set stb=REPLACE(stb,1,7) 
  79. WHERE ID>= 300001 AND ID<= 350000; 
  80.  
  81. #删除副表_7中已经移动成功的数据 
  82. DELETE FROM phome_ecms_news_data_1 
  83. WHERE ID>= 300001 AND ID<= 350000; 
  84.  
  85. #---------------------------第7组分表SQL------------------------------ 
  86. #副表_8数据迁移,迁移350001到400000之间的数据 
  87. INSERT INTO phome_ecms_news_data_8 
  88. SELECT * FROM phome_ecms_news_data_1 T2 
  89. WHERE T2.ID>= 350001 AND T2.ID<= 400000; 
  90.  
  91. #更新主表与副表_8的关系 
  92. update phome_ecms_news set stb=REPLACE(stb,1,8) 
  93. WHERE ID>= 350001 AND ID<= 400000; 
  94.  
  95. #删除副表_8中已经移动成功的数据 
  96. DELETE FROM phome_ecms_news_data_1 
  97. WHERE ID>= 350001 AND ID<= 400000; 
  98.  
  99. #---------------------------第8组分表SQL------------------------------ 
  100. #副表_9数据迁移,迁移400001到450000之间的数据 
  101. INSERT INTO phome_ecms_news_data_9 
  102. SELECT * FROM phome_ecms_news_data_1 T2 
  103. WHERE T2.ID>= 400001 AND T2.ID<= 450000; 
  104.  
  105. #更新主表与副表_9的关系 
  106. update phome_ecms_news set stb=REPLACE(stb,1,9) 
  107. WHERE ID>= 400001 AND ID<= 450000; 
  108.  
  109. #删除副表_9中已经移动成功的数据 
  110. DELETE FROM phome_ecms_news_data_1 
  111. WHERE ID>= 400001 AND ID<= 450000; 
  112.  
  113. #---------------------------第9组分表SQL------------------------------ 
  114. #副表_10数据迁移,迁移450001到500000之间的数据 
  115. INSERT INTO phome_ecms_news_data_10 
  116. SELECT * FROM phome_ecms_news_data_1 T2 
  117. WHERE T2.ID>= 450001 AND T2.ID<= 500000; 
  118.  
  119. #更新主表与副表_10的关系 
  120. update phome_ecms_news set stb=REPLACE(stb,1,10) 
  121. WHERE ID>= 450001 AND ID<= 500000; 
  122.  
  123. #删除副表_10中已经移动成功的数据 
  124. DELETE FROM phome_ecms_news_data_1 
  125. WHERE ID>= 450001 AND ID<= 500000; 
  126.  
  127. #---------------------------第10组分表SQL------------------------------ 
  128. #副表_11数据迁移,迁移500001到550000之间的数据 
  129. INSERT INTO phome_ecms_news_data_11 
  130. SELECT * FROM phome_ecms_news_data_1 T2 
  131. WHERE T2.ID>= 500001 AND T2.ID<= 550000; 
  132.  
  133. #更新主表与副表_11的关系 
  134. update phome_ecms_news set stb=REPLACE(stb,1,11) 
  135. WHERE ID>= 500001 AND ID<= 550000; 
  136.  
  137. #删除副表_11中已经移动成功的数据 
  138. DELETE FROM phome_ecms_news_data_1 
  139. WHERE ID>= 500001 AND ID<= 550000; 
  140.  
  141. #---------------------------第11组分表SQL------------------------------ 
  142. #副表_12数据迁移,迁移550001到600000之间的数据 
  143. INSERT INTO phome_ecms_news_data_12 
  144. SELECT * FROM phome_ecms_news_data_1 T2 
  145. WHERE T2.ID>= 550001 AND T2.ID<= 600000; 
  146.  
  147. #更新主表与副表_12的关系 
  148. update phome_ecms_news set stb=REPLACE(stb,1,12) 
  149. WHERE ID>= 550001 AND ID<= 600000; 
  150.  
  151. #删除副表_12中已经移动成功的数据 
  152. DELETE FROM phome_ecms_news_data_1 
  153. WHERE ID>= 550001 AND ID<= 600000; 
  154.  
  155. #---------------------------第12组分表SQL------------------------------ 
  156. #副表_13数据迁移,迁移600001到650000之间的数据 
  157. INSERT INTO phome_ecms_news_data_13 
  158. SELECT * FROM phome_ecms_news_data_1 T2 
  159. WHERE T2.ID>= 600001 AND T2.ID<= 650000; 
  160.  
  161. #更新主表与副表_13的关系 
  162. update phome_ecms_news set stb=REPLACE(stb,1,13) 
  163. WHERE ID>= 600001 AND ID<= 650000; 
  164.  
  165. #删除副表_13中已经移动成功的数据 
  166. DELETE FROM phome_ecms_news_data_1 
  167. WHERE ID>= 600001 AND ID<= 650000; 
  168.  
  169. #---------------------------第13组分表SQL------------------------------ 
  170. #副表_14数据迁移,迁移650001到700000之间的数据 
  171. INSERT INTO phome_ecms_news_data_14 
  172. SELECT * FROM phome_ecms_news_data_1 T2 
  173. WHERE T2.ID>= 650001 AND T2.ID<= 700000; 
  174.  
  175. #更新主表与副表_14的关系 
  176. update phome_ecms_news set stb=REPLACE(stb,1,14) 
  177. WHERE ID>= 650001 AND ID<= 700000; 
  178.  
  179. #删除副表_14中已经移动成功的数据 
  180. DELETE FROM phome_ecms_news_data_1 
  181. WHERE ID>= 650001 AND ID<= 700000; 
  182.  
  183. #---------------------------第14组分表SQL------------------------------ 
  184. #副表_15数据迁移,迁移700001到750000之间的数据 
  185. INSERT INTO phome_ecms_news_data_15 
  186. SELECT * FROM phome_ecms_news_data_1 T2 
  187. WHERE T2.ID>= 700001 AND T2.ID<= 750000; 
  188.  
  189. #更新主表与副表_15的关系 
  190. update phome_ecms_news set stb=REPLACE(stb,1,15) 
  191. WHERE ID>= 700001 AND ID<= 750000; 
  192.  
  193. #删除副表_15中已经移动成功的数据 
  194. DELETE FROM phome_ecms_news_data_1 
  195. WHERE ID>= 700001 AND ID<= 750000; 
  196.  
  197. #---------------------------第15组分表SQL------------------------------ 
  198. #副表_16数据迁移,迁移750001到800000之间的数据 
  199. INSERT INTO phome_ecms_news_data_16 
  200. SELECT * FROM phome_ecms_news_data_1 T2 
  201. WHERE T2.ID>= 750001 AND T2.ID<= 800000; 
  202.  
  203. #更新主表与副表_16的关系 
  204. update phome_ecms_news set stb=REPLACE(stb,1,16) 
  205. WHERE ID>= 750001 AND ID<= 800000; 
  206.  
  207. #删除副表_16中已经移动成功的数据 
  208. DELETE FROM phome_ecms_news_data_1 
  209. WHERE ID>= 750001 AND ID<= 800000; 
  210.  
  211. #---------------------------第16组分表SQL------------------------------ 
  212. #副表_17数据迁移,迁移800001到850000之间的数据 
  213. INSERT INTO phome_ecms_news_data_17 
  214. SELECT * FROM phome_ecms_news_data_1 T2 
  215. WHERE T2.ID>= 800001 AND T2.ID<= 850000; 
  216.  
  217. #更新主表与副表_17的关系 
  218. update phome_ecms_news set stb=REPLACE(stb,1,17) 
  219. WHERE ID>= 800001 AND ID<= 850000; 
  220.  
  221. #删除副表_17中已经移动成功的数据 
  222. DELETE FROM phome_ecms_news_data_1 
  223. WHERE ID>= 800001 AND ID<= 850000; 
  224.  
  225. #---------------------------第17组分表SQL------------------------------ 
  226. #副表_18数据迁移,迁移850001到900000之间的数据 
  227. INSERT INTO phome_ecms_news_data_18 
  228. SELECT * FROM phome_ecms_news_data_1 T2 
  229. WHERE T2.ID>= 850001 AND T2.ID<= 900000; 
  230.  
  231. #更新主表与副表_18的关系 
  232. update phome_ecms_news set stb=REPLACE(stb,1,18) 
  233. WHERE ID>= 850001 AND ID<= 900000; 
  234.  
  235. #删除副表_18中已经移动成功的数据 
  236. DELETE FROM phome_ecms_news_data_1 
  237. WHERE ID>= 850001 AND ID<= 900000; 
  238.  
  239. #---------------------------第18组分表SQL------------------------------ 
  240. #副表_19数据迁移,迁移900001到950000之间的数据 
  241. INSERT INTO phome_ecms_news_data_19 
  242. SELECT * FROM phome_ecms_news_data_1 T2 
  243. WHERE T2.ID>= 900001 AND T2.ID<= 950000; 
  244.  
  245. #更新主表与副表_19的关系 
  246. update phome_ecms_news set stb=REPLACE(stb,1,19) 
  247. WHERE ID>= 900001 AND ID<= 950000; 
  248.  
  249. #删除副表_19中已经移动成功的数据 
  250. DELETE FROM phome_ecms_news_data_1 
  251. WHERE ID>= 900001 AND ID<= 950000; 
  252.  
  253. #---------------------------第19组分表SQL------------------------------ 
  254. #副表_20数据迁移,迁移950001到1000000之间的数据 
  255. INSERT INTO phome_ecms_news_data_20 
  256. SELECT * FROM phome_ecms_news_data_1 T2 
  257. WHERE T2.ID>= 950001 AND T2.ID<= 1000000; 
  258.  
  259. #更新主表与副表_20的关系 
  260. update phome_ecms_news set stb=REPLACE(stb,1,20) 
  261. WHERE ID>= 950001 AND ID<= 1000000; 
  262.  
  263. #删除副表_20中已经移动成功的数据 
  264. DELETE FROM phome_ecms_news_data_1 
  265. WHERE ID>= 950001 AND ID<= 1000000; 
  266.  
  267. #---------------------------第20组分表SQL------------------------------ 
  268. #副表_21数据迁移,迁移1000001到1050000之间的数据 
  269. INSERT INTO phome_ecms_news_data_21 
  270. SELECT * FROM phome_ecms_news_data_1 T2 
  271. WHERE T2.ID>= 1000001 AND T2.ID<= 1050000; 
  272.  
  273. #更新主表与副表_21的关系 
  274. update phome_ecms_news set stb=REPLACE(stb,1,21) 
  275. WHERE ID>= 1000001 AND ID<= 1050000; 
  276.  
  277. #删除副表_21中已经移动成功的数据 
  278. DELETE FROM phome_ecms_news_data_1 
  279. WHERE ID>= 1000001 AND ID<= 1050000; 
  280.  
  281. #---------------------------第21组分表SQL------------------------------ 
  282. #副表_22数据迁移,迁移1050001到1100000之间的数据 
  283. INSERT INTO phome_ecms_news_data_22 
  284. SELECT * FROM phome_ecms_news_data_1 T2 
  285. WHERE T2.ID>= 1050001 AND T2.ID<= 1100000; 
  286.  
  287. #更新主表与副表_22的关系 
  288. update phome_ecms_news set stb=REPLACE(stb,1,22) 
  289. WHERE ID>= 1050001 AND ID<= 1100000; 
  290.  
  291. #删除副表_22中已经移动成功的数据 
  292. DELETE FROM phome_ecms_news_data_1 
  293. WHERE ID>= 1050001 AND ID<= 1100000; 
  294.  
  295. #---------------------------第22组分表SQL------------------------------ 
  296. #副表_23数据迁移,迁移1100001到1150000之间的数据 
  297. INSERT INTO phome_ecms_news_data_23 
  298. SELECT * FROM phome_ecms_news_data_1 T2 
  299. WHERE T2.ID>= 1100001 AND T2.ID<= 1150000; 
  300.  
  301. #更新主表与副表_23的关系 
  302. update phome_ecms_news set stb=REPLACE(stb,1,23) 
  303. WHERE ID>= 1100001 AND ID<= 1150000; 
  304.  
  305. #删除副表_23中已经移动成功的数据 
  306. DELETE FROM phome_ecms_news_data_1 
  307. WHERE ID>= 1100001 AND ID<= 1150000; 
  308.  
  309. #---------------------------第23组分表SQL------------------------------ 
  310. #副表_24数据迁移,迁移1150001到1200000之间的数据 
  311. INSERT INTO phome_ecms_news_data_24 
  312. SELECT * FROM phome_ecms_news_data_1 T2 
  313. WHERE T2.ID>= 1150001 AND T2.ID<= 1200000; 
  314.  
  315. #更新主表与副表_24的关系 
  316. update phome_ecms_news set stb=REPLACE(stb,1,24) 
  317. WHERE ID>= 1150001 AND ID<= 1200000; 
  318.  
  319. #删除副表_24中已经移动成功的数据 
  320. DELETE FROM phome_ecms_news_data_1 
  321. WHERE ID>= 1150001 AND ID<= 1200000; 
  322.  
  323. #---------------------------第24组分表SQL------------------------------ 
  324. #副表_25数据迁移,迁移1200001到1250000之间的数据 
  325. INSERT INTO phome_ecms_news_data_25 
  326. SELECT * FROM phome_ecms_news_data_1 T2 
  327. WHERE T2.ID>= 1200001 AND T2.ID<= 1250000; 
  328.  
  329. #更新主表与副表_25的关系 
  330. update phome_ecms_news set stb=REPLACE(stb,1,25) 
  331. WHERE ID>= 1200001 AND ID<= 1250000; 
  332.  
  333. #删除副表_25中已经移动成功的数据 
  334. DELETE FROM phome_ecms_news_data_1 
  335. WHERE ID>= 1200001 AND ID<= 1250000; 
  336.  
  337. #---------------------------第25组分表SQL------------------------------ 
  338. #副表_26数据迁移,迁移1250001到1300000之间的数据 
  339. INSERT INTO phome_ecms_news_data_26 
  340. SELECT * FROM phome_ecms_news_data_1 T2 
  341. WHERE T2.ID>= 1250001 AND T2.ID<= 1300000; 
  342.  
  343. #更新主表与副表_26的关系 
  344. update phome_ecms_news set stb=REPLACE(stb,1,26) 
  345. WHERE ID>= 1250001 AND ID<= 1300000; 
  346.  
  347. #删除副表_26中已经移动成功的数据 
  348. DELETE FROM phome_ecms_news_data_1 
  349. WHERE ID>= 1250001 AND ID<= 1300000; 
  350.  
  351. #---------------------------第26组分表SQL------------------------------ 
  352. #副表_27数据迁移,迁移1300001到1350000之间的数据 
  353. INSERT INTO phome_ecms_news_data_27 
  354. SELECT * FROM phome_ecms_news_data_1 T2 
  355. WHERE T2.ID>= 1300001 AND T2.ID<= 1350000; 
  356.  
  357. #更新主表与副表_27的关系 
  358. update phome_ecms_news set stb=REPLACE(stb,1,27) 
  359. WHERE ID>= 1300001 AND ID<= 1350000; 
  360.  
  361. #删除副表_27中已经移动成功的数据 
  362. DELETE FROM phome_ecms_news_data_1 
  363. WHERE ID>= 1300001 AND ID<= 1350000; 
  364.  
  365. #---------------------------第27组分表SQL------------------------------ 
  366. #副表_28数据迁移,迁移1350001到1400000之间的数据 
  367. INSERT INTO phome_ecms_news_data_28 
  368. SELECT * FROM phome_ecms_news_data_1 T2 
  369. WHERE T2.ID>= 1350001 AND T2.ID<= 1400000; 
  370.  
  371. #更新主表与副表_28的关系 
  372. update phome_ecms_news set stb=REPLACE(stb,1,28) 
  373. WHERE ID>= 1350001 AND ID<= 1400000; 
  374.  
  375. #删除副表_28中已经移动成功的数据 
  376. DELETE FROM phome_ecms_news_data_1 
  377. WHERE ID>= 1350001 AND ID<= 1400000; 
  378.  
  379. #---------------------------第28组分表SQL------------------------------ 
  380. #副表_29数据迁移,迁移1400001到1450000之间的数据 
  381. INSERT INTO phome_ecms_news_data_29 
  382. SELECT * FROM phome_ecms_news_data_1 T2 
  383. WHERE T2.ID>= 1400001 AND T2.ID<= 1450000; 
  384.  
  385. #更新主表与副表_29的关系 
  386. update phome_ecms_news set stb=REPLACE(stb,1,29) 
  387. WHERE ID>= 1400001 AND ID<= 1450000; 
  388.  
  389. #删除副表_29中已经移动成功的数据 
  390. DELETE FROM phome_ecms_news_data_1 
  391. WHERE ID>= 1400001 AND ID<= 1450000; 

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags:CMS帝国帝国CMS

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿