首页站内杂志技术文摘
文章内容页

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

  • 作者:雨祺
  • 来源: 原创
  • 发表于2024-07-05 10:55:25
  • 被阅读0
  • 帝国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; 
    【审核人:站长】

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

        本文链接:https://www.meiweny.cn/zazhi/zhongwangjiaocheng/1044.html

        赞一下

        深度阅读

        • 您也可以注册成为美文苑的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注美文苑