What are the benefits and drawbacks of introducing a new ID column in a MySQL table for pagination purposes in PHP?

When implementing pagination in PHP with MySQL, it can be beneficial to introduce a new ID column in the table to help keep track of the current page being displayed. This can simplify the pagination logic and make it easier to fetch the correct set of rows for each page. However, adding a new ID column may also increase the complexity of the database schema and require additional maintenance to keep the column updated.

// Assuming we have a table named 'items' with columns 'id', 'name', 'description'
// Add a new ID column for pagination purposes
ALTER TABLE items ADD COLUMN pagination_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

// Retrieve paginated data using the new ID column
$page = $_GET['page']; // Current page number
$itemsPerPage = 10; // Number of items per page

$offset = ($page - 1) * $itemsPerPage;

$query = "SELECT * FROM items ORDER BY pagination_id LIMIT $offset, $itemsPerPage";
$result = mysqli_query($connection, $query);

while($row = mysqli_fetch_assoc($result)) {
    // Display items
}