簡體   English   中英

根據時間連接到mysql表

[英]connected to mysql table depending on time

如果服務器時間在1-30秒之間連接到一個表,如果超過31-60秒連接到另一個表。

我需要這個的原因是因為我不確定,但如果10,000人正在訪問一個mysql表,這會大大減慢它。

我的代碼如下

 <?php
    header('Content-type: application/json');

    $server = "localhost";
    $username = "root1";
    $password = "root1";
    $database = "test";

    $con = mysql_connect($server, $username, $password) or die ("Could not connect: " .  mysql_error());
    mysql_select_db($database, $con);

    $sql = "SELECT id, name FROM post ORDER BY id";
    $result = mysql_query($sql) or die ("Query error: " . mysql_error());

    $records = array();

    while($row = mysql_fetch_assoc($result)) {
        $records[] = $row;
    }

    mysql_close($con);

    echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
    ?>

不確定我完全理解但是自從Unix Epoch以來,php的time()將返回秒。 如果是偶數,請將其連接到一個表,否則將另一個表連接......這將有效地分割流量......

  <?php
    $time = time();
    $tableToAccess = ($time % 2 == 0) ? 'table_one' : 'table_two';

    $db = new mysqli('localhost','username','password','database');

    $result = $db->query("SELECT * FROM $tableToAccess");

  ?>

話雖這么說,由多個用戶運行的數據庫引擎會降低您的速度,而不是同時進行表訪問

我建議不要在應用程序代碼級別進行負載平衡。 如果你需要在不同的表中分配負載,你應該考慮設置分區和負載均衡的mysql集群,這樣就可以在數據庫級別上進行干凈的處理。 這里有一些鏈接可以進一步指導您:

您可以將連接超時設置為其中一個選項。 請參閱: http//php.net/manual/en/mysqli.options.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM