Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Pomocy z optymalizacja
xavierek
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 2
Dołączył: 22.03.2009

Ostrzeżenie: (0%)
-----


Witam prosił bym o pomoc przy optymalizacji kodu ponieważ hosting skarży się na za duże użycie procesosora skrypt jest wykonywany raz na 5 min array zwracany to okolo 400 wierszy wykonywany 100 razy ,obciecie danych wchodzacych do preg mach odpada bo bardziej obciaza serwer
  1. $ppp=1; while($ppp<=100) { preg_match_all($code, $handler, $data, PREG_PATTERN_ORDER);
  2. $i2 = 0;
  3. $p = 0;
  4. while ($data[0][$i2] != '') {
  5. $userName = addslashes(encodeNamePlayer($data[1][$i2]));
  6. $userLevel = $data[3][$i2];
  7. $userVocationId = $vocations[$data[4][$i2]];
  8. $userId = getuserId($userName);
  9. if ($userId > 0 && $userName != '') {
  10.  
  11.  
  12. $result = mysql_query("SELECT `userVocationId`, `userLevel`, `userWorldId`, `userTotalOnlineTime` FROM `users` WHERE `userId` ='$userId'");
  13. $rr = mysql_fetch_array($result);
  14. $userOldLevel = $rr['userLevel'];
  15. $userOldVocationId = $rr['userVocationId'];
  16. $userOldWorldId = $rr['userWorldId'];
  17. $userTotalOnlineTime = $rr['userTotalOnlineTime']+1;
  18. if ($userOldLevel != $userLevel) {
  19. if($userOldLevel>$userLevel){
  20. mysql_query("INSERT INTO `klorxcom_user_statistics`.`waiting_for_review_by_the_death` (
  21. `userId` ,
  22. `date`
  23. )
  24. VALUES (
  25. '1', '1'
  26. );
  27. ");
  28. }
  29.  
  30. "INSERT INTO `klorxcom_user_statistics`.`user_level_history` (
  31. `userId` ,
  32. `level` ,
  33. `date`
  34. )
  35. VALUES (
  36. '$userId', '$userLevel', '$time'
  37. )");
  38. }
  39. if ($userOldVocationId != $userVocationId) {
  40. "INSERT INTO `klorxcom_user_statistics`.`user_vocation_history` (
  41. `userId` ,
  42. `vocationId` ,
  43. `date`
  44. )
  45. VALUES (
  46. '$userId', '$userVocationId', '$time'
  47. )");
  48. }
  49. if ($worldId != $userOldWorldId) {
  50. "INSERT INTO `klorxcom_world_statistics`.`user_world_history` (
  51. `userId` ,
  52. `worldId` ,
  53. `date`
  54. )
  55. VALUES (
  56. '$userId', '$worldId', '$time'
  57. )");
  58. }
  59. "UPDATE `klorxcom_user_statistics`.`users` SET `userLevel` = '$userLevel',
  60. `userVocationId` = '$userVocationId',
  61. `userWorldId` = '$worldId', `userTotalOnlineTime` = '$userTotalOnlineTime',
  62. `userLastLogin` = '$time' WHERE `users`.`userId` = '$userId' LIMIT 1");
  63. } elseif ($userName != '') {
  64. ## gracz nie istnieje
  65. "INSERT INTO `klorxcom_user_statistics`.`users` (
  66. `userId` ,
  67. `userName` ,
  68. `userLevel` ,
  69. `userVocationId` ,
  70. `userWorldId` ,
  71. `userTotalOnlineTime`,
  72. `userLastLogin` ,
  73. `addToStatistics`
  74. )
  75. VALUES (
  76. NULL , '$userName', '$userLevel', '$userVocationId', '$worldId', '1', '$time', '$time'
  77. )");
  78. $userId = getuserId($userName);
  79. "INSERT INTO `klorxcom_user_statistics`.`user_level_history` (
  80. `userId` ,
  81. `level` ,
  82. `date`
  83. )
  84. VALUES (
  85. '$userId', '$userLevel', '$time'
  86. )");
  87. "INSERT INTO `klorxcom_user_statistics`.`user_vocation_history` (
  88. `userId` ,
  89. `vocationId` ,
  90. `date`
  91. )
  92. VALUES (
  93. '$userId', '$userVocationId', '$time'
  94. )");
  95. "INSERT INTO `klorxcom_world_statistics`.`user_world_history` (
  96. `userId` ,
  97. `worldId` ,
  98. `date`
  99. )
  100. VALUES (
  101. '$userId', '$worldId', '$time'
  102. )");
  103. } else {
  104. ##cos nie tak
  105. }
  106. if ($userId > 0) {
  107. "INSERT INTO `klorxcom_user_statistics`.`user_online_data` (
  108. `userId` ,
  109. `worldId` ,
  110. `date`
  111. )
  112. VALUES (
  113. '$userId', '$worldId', '$time'
  114. )");
  115. }
  116. $i2 ++;
  117. $p ++;
  118.  
  119. }
  120. mysql_query ( "INSERT INTO `world_players_history` (
  121. `world_id` ,
  122. `players_online` ,
  123. `date`
  124. )
  125. VALUES (
  126. '$worldId', '$p', '$time'
  127. )");
  128. }
  129.  
  130.  
  131. mysql_query("OPTIMIZE TABLE `users` , `user_level_history` , `user_online_history` , `user_vocation_history` , `user_world_history`");
  132. )");
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:47