In PHP, what are the best practices for handling large database tables to optimize performance and reduce data transfer overhead?

When dealing with large database tables in PHP, it is important to optimize performance and reduce data transfer overhead. One way to achieve this is by using pagination to limit the amount of data retrieved from the database at once. This can be done by fetching only a subset of records based on the current page and displaying a limited number of records per page.

// Set the limit and offset for pagination
$limit = 10; // Number of records to display per page
$page = isset($_GET['page']) ? $_GET['page'] : 1; // Get the current page number
$offset = ($page - 1) * $limit; // Calculate the offset

// Query to fetch data with pagination
$query = "SELECT * FROM large_table LIMIT $limit OFFSET $offset";
$result = mysqli_query($conn, $query);

// Display the records
while ($row = mysqli_fetch_assoc($result)) {
    // Display data here
}

// Pagination links
$total_records = // Query to get total number of records in the table
$total_pages = ceil($total_records / $limit);

for ($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}