/** * run select query by generated text query * * @param $query_text */ public function run_select($query_text) { //$times = (int) \testing_config::$select ['times']; $times = $_GET['times']; $db = \hlkiller_core::db(); $start_time = microtime(2); for ($i = 0; $i < $times; $i++) { try { $result = $db->query($query_text); if ($db->errno) { throw new \Exceptions\MySQLQuery('Mysqli died. ' . $db->errno . ' : ' . $db->error); } $result_array = array(); while ($tmp_array = $result->fetch_assoc()) { $result_array[] = $tmp_array; } } catch (\Exceptions\MySQLQuery $e) { die($e->getMessage()); } } $end_time = microtime(2); echo $end_time - $start_time, '<br>'; \annex::showArray($result_array); }
/** * generate random data for base */ public function generate_fish() { $config = \testing_config::$gen_fish; $start = microtime(TRUE); $tables = \config::getModel(); $startPostsEach = $config['startPostsEach']; $endPostsEach = $config['endPostsEach']; $startCategoriesEach = $config['startCategoriesEach']; $endCategoriesEach = $config['endCategoriesEach']; $startCommentsEach = $config['startCommentsEach']; $endCommentsEach = $config['endCommentsEach']; $startLikesEach = $config['startLikesEach']; $endLikesEach = $config['endLikesEach']; $startFriendsEach = $config['startFriendsEach']; $endFriendsEach = $config['endFriendsEach']; $partCount = $config['partCount']; $categoriesCount = $config['categoriesCount']; $user_insert_values_arr = array(); $following_insert_values_arr = array(); $posts_insert_values_arr = array(); $rel_categories_posts_insert_arr = array(); $add_comments_rel_count = array(); $rel_comments_posts_insert_arr = array(); $rel_like_posts_insert_arr = array(); $categories_insert_arr = array(); $startUsers = 1; if (isset($_SESSION['exist']) && $_SESSION['exist'] == '1') { $post_id = $_SESSION['post_id']; $startUsers = $_SESSION['user_start']; $categories_insert_arr = json_decode($_SESSION['categories_arr'], true); //var_dump($categories_insert_arr); //return ; } else { $post_id = 1; for ($i = 1; $i <= $categoriesCount; $i++) { $categories_insert_arr[] = \annex::set_fields($tables['categories'], $i); } $_SESSION['categories_arr'] = json_encode($categories_insert_arr); \hlkiller_core::sql_gen('insert', array('table' => 'categories', 'values' => $categories_insert_arr)); } $finalUsersCount = $startUsers + $partCount * $config['finalUsersCount'] - 1; for ($user_part_first_id = $startUsers; $user_part_first_id <= $finalUsersCount; $user_part_first_id += $partCount) { $user_insert_values_arr = array(); $users_temp_ids = array(); $following_insert_values_arr = array(); $user_part_last = $user_part_first_id + $partCount; // Add Users for ($user_id = $user_part_first_id; $user_id < $user_part_last; $user_id++) { $user_insert_values_arr[] = \annex::set_fields($tables['users'], $user_id); $users_temp_ids[] = $user_id; } \hlkiller_core::sql_gen('insert', array('table' => 'users', 'values' => $user_insert_values_arr)); $new_tenp_ids = $users_temp_ids; for ($user_id = $user_part_first_id; $user_id < $user_part_last; $user_id++) { $add_friend_count = rand($startFriendsEach, $endFriendsEach); for ($friendsEach = $startFriendsEach; $friendsEach <= $add_friend_count; $friendsEach++) { $friedSupplier = get_primary_value('users_id', $user_insert_values_arr); if (in_array($friedSupplier, $new_tenp_ids)) { $following_insert_values_arr[] = \annex::set_fields($tables['rel_users_following'], $user_id, $friedSupplier); if (($key = array_search($friedSupplier, $new_tenp_ids)) !== false) { unset($new_tenp_ids[$key]); } } } $new_tenp_ids = $users_temp_ids; } \hlkiller_core::sql_gen('insert', array('table' => 'rel_users_following', 'values' => $following_insert_values_arr)); $counter = 1; $posts_insert_values_arr = array(); $rel_categories_posts_insert_arr = array(); $add_comments_rel_count = array(); $rel_comments_posts_insert_arr = array(); $rel_like_posts_insert_arr = array(); // Add user posts for ($user_id = $user_part_first_id; $user_id < $user_part_last; $user_id++) { $add_post_count = rand($startPostsEach, $endPostsEach); for ($i = $startPostsEach; $i <= $add_post_count; $i++) { // Add Post $posts_insert_values_arr[] = \annex::set_fields($tables['posts'], $post_id, get_primary_value('users_id', $user_insert_values_arr)); // Add Categories Relations $add_categories_rel_count = rand($startCategoriesEach, $endCategoriesEach); for ($rel_count = $startCategoriesEach; $rel_count <= $endCategoriesEach; $rel_count++) { $rel_categories_posts_insert_arr[] = \annex::set_fields($tables['rel_posts_categories'], $post_id, get_primary_value('categories_id', $categories_insert_arr)); //Array(post_id, rand_from_array(category_id)) } // Add Post Comments $add_comments_rel_count = rand($startCommentsEach, $endCommentsEach); for ($rel_count = $startCategoriesEach; $rel_count <= $endCategoriesEach; $rel_count++) { $rel_comments_posts_insert_arr[] = \annex::set_fields($tables['rel_users_posts_comments'], get_primary_value('users_id', $user_insert_values_arr), $post_id); //Array(post_id, user_insert_values_arr[rand_this()], comment_text) } // Add Post Likes $add_like_rel_count = rand($startLikesEach, $endLikesEach); for ($rel_count = $startCategoriesEach; $rel_count <= $endCategoriesEach; $rel_count++) { $rel_like_posts_insert_arr[] = \annex::set_fields($tables['users_posts_like'], get_primary_value('users_id', $user_insert_values_arr), $post_id); //Array(post_id, user_insert_values_arr[rand_this()], like_time) } $post_id++; } if ($counter % 25 == 0) { //var_dump(count($posts_insert_values_arr)); //var_dump(count($rel_categories_posts_insert_arr)); //var_dump(count($rel_comments_posts_insert_arr)); //var_dump(count($rel_like_posts_insert_arr)); //echo '<br><br>'; \hlkiller_core::sql_gen('insert', array('table' => 'posts', 'delayed' => TRUE, 'values' => $posts_insert_values_arr), true); \hlkiller_core::sql_gen('insert', array('table' => 'rel_posts_categories', 'values' => $rel_categories_posts_insert_arr), true); \hlkiller_core::sql_gen('insert', array('table' => 'rel_users_posts_comments', 'values' => $rel_comments_posts_insert_arr), true); \hlkiller_core::sql_gen('insert', array('table' => 'users_posts_like', 'values' => $rel_like_posts_insert_arr), true); $posts_insert_values_arr = array(); $rel_categories_posts_insert_arr = array(); $add_comments_rel_count = array(); $rel_comments_posts_insert_arr = array(); $rel_like_posts_insert_arr = array(); $counter = 0; } $counter++; } if (!empty($posts_insert_values_arr)) { \hlkiller_core::sql_gen('insert', array('table' => 'posts', 'delayed' => TRUE, 'values' => $posts_insert_values_arr), true); } if (!empty($rel_categories_posts_insert_arr)) { \hlkiller_core::sql_gen('insert', array('table' => 'rel_posts_categories', 'values' => $rel_categories_posts_insert_arr), true); } if (!empty($rel_comments_posts_insert_arr)) { \hlkiller_core::sql_gen('insert', array('table' => 'rel_users_posts_comments', 'values' => $rel_comments_posts_insert_arr), true); } if (!empty($rel_like_posts_insert_arr)) { \hlkiller_core::sql_gen('insert', array('table' => 'users_posts_like', 'values' => $rel_like_posts_insert_arr), true); } $posts_insert_values_arr = array(); $rel_categories_posts_insert_arr = array(); $add_comments_rel_count = array(); $rel_comments_posts_insert_arr = array(); $rel_like_posts_insert_arr = array(); $counter = 0; } $_SESSION['post_id'] = $post_id; $_SESSION['user_start'] = $finalUsersCount + 1; $_SESSION['exist'] = '1'; $finish = microtime(TRUE); $totaltime = $finish - $start; echo json_encode(array('script' => $totaltime, 'userID' => $finalUsersCount + 1, 'post_id' => $post_id)); }
public static function queries_array($index = null) { $arr = array(function () { $users_q = \hlkiller_core::db()->query("SELECT `users_id` FROM `users` ORDER BY RAND() LIMIT 1"); $users = $users_q->fetch_array(MYSQLI_ASSOC); $posts_q = \hlkiller_core::db()->query("SELECT `posts_id` FROM `posts` ORDER BY RAND() LIMIT 1"); $posts = $posts_q->fetch_array(MYSQLI_ASSOC); $likes_q = \hlkiller_core::db()->query("SELECT COUNT(*) FROM `users_posts_like` WHERE `users_id`='{$users['users_id']}' AND `posts_id`='{$posts['posts_id']}'"); $likes = $likes_q->fetch_array(MYSQLI_NUM); if ($likes[0]) { $result = \hlkiller_core::db()->query("DELETE FROM `users_posts_like` WHERE `users_id`='{$users['users_id']}' AND `posts_id`='{$posts['posts_id']}'"); } else { $result = \hlkiller_core::db()->query("INSERT INTO `users_posts_like` (`users_id`,`posts_id`,`rel_users_posts_like_time`) VALUES ('{$users['users_id']}','{$posts['posts_id']}',UNIX_TIMESTAMP())"); } return $result; }, function () { $users_q = \hlkiller_core::db()->query("SELECT `users_id` FROM `users` ORDER BY RAND() LIMIT 1"); $users = $users_q->fetch_array(MYSQLI_ASSOC); $users2_q = \hlkiller_core::db()->query("SELECT `users_id` FROM `users` ORDER BY RAND() LIMIT 1"); $users2 = $users2_q->fetch_array(MYSQLI_ASSOC); $likes_q = \hlkiller_core::db()->query("SELECT `following_id` FROM `rel_users_following` WHERE `users_follower_id`='{$users['users_id']}' AND `users_supplier_id`='{$users2['users_id']}'"); $likes = $likes_q->fetch_array(MYSQLI_NUM); if ($likes[0]) { $result = \hlkiller_core::db()->query("DELETE FROM `rel_users_following` WHERE `following_id`='{$likes['0']}'"); } else { $result = \hlkiller_core::db()->query("INSERT INTO `rel_users_following` (`users_follower_id`,`users_supplier_id`,`following_time`) VALUES ('{$users['users_id']}','{$users2['users_id']}',UNIX_TIMESTAMP())"); } return $result; }, function () { $users_q = \hlkiller_core::db()->query("SELECT `users_id` FROM `users` ORDER BY RAND() LIMIT 1"); $users = $users_q->fetch_array(MYSQLI_ASSOC); $posts_q = \hlkiller_core::db()->query("SELECT `posts_id` FROM `posts` ORDER BY RAND() LIMIT 1"); $posts = $posts_q->fetch_array(MYSQLI_ASSOC); $text = \annex::gen_rnd_text(); $result = \hlkiller_core::db()->query("INSERT INTO `rel_users_posts_comments` (`users_id`,`posts_id`,`rel_users_posts_comments_time`,`comments_text`) VALUES ('{$users['users_id']}','{$posts['posts_id']}',UNIX_TIMESTAMP(),'{$text}')"); return $result; }, function () { $posts_q = \hlkiller_core::db()->query("SELECT `posts_id` FROM `posts` ORDER BY RAND() LIMIT 1"); $posts = $posts_q->fetch_array(MYSQLI_ASSOC); $categories_q = \hlkiller_core::db()->query("SELECT `categories_id` FROM `categories` ORDER BY RAND() LIMIT 1"); $categories = $categories_q->fetch_array(MYSQLI_ASSOC); $pc_q = \hlkiller_core::db()->query("SELECT `posts_categories_id` FROM `rel_posts_categories` WHERE `posts_id`='{$posts['posts_id']}' AND `categories_id`='{$categories['categories_id']}'"); if ($pc_q->num_rows) { $result = \hlkiller_core::db()->query("DELETE FROM `rel_posts_categories` WHERE `posts_id`='{$posts['posts_id']}' AND `categories_id`='{$categories['categories_id']}'"); } else { $result = \hlkiller_core::db()->query("INSERT INTO `rel_posts_categories` (`posts_id`,`categories_id`) VALUES ('{$posts['posts_id']}','{$categories['categories_id']}')"); } return $result; }, function () { $name = \annex::gen_rnd_str(20); $pass = \annex::gen_rnd_str(25); $time = time(); $result = \hlkiller_core::db()->query("INSERT INTO `users` (`users_username`,`users_password`,`users_created_on`) VALUES ('{$name}','{$pass}','{$time}')"); return $result; }); if (!is_null($index)) { return $arr[$index](); } else { return count($arr); } }