Keep in mind also that MyISAM keeps data and indexes in two separate files (.MYD for data, .MYI for indexes), so it would be trivial to disable and enable indexes. InnoDB keeps the PRIMARY KEY and row data in the same InnoDB pages (via the Clustered Index). Secondary indexes will carry the PRIMARY KEY as an attachment to every secondary index leaf entry. Since the data and indexes are intertwined via the Clustered Index, no one has, as of yet, attempted to implement DISABLE KEYS and ENABLE KEYS in InnoDB.
SELECT table.user_id, SUM(table.value) as value_sum FROM table GROUP BY table.user_id
Создать таблицу для хранения платежей (пополнения списания) и считать баланс путем сложения операций? Или просто создать колонку balance и все?
$result = $db->query('SELECT p.id, p.name, c.name, p.price, p.code FROM product as p, category_id as c WHERE c.id = p.category_id');
...
$result = $db->query('SELECT p.id, p.name, c.name, p.price, p.code FROM product as p LEFT JOIN category as c ON p.category_id = c.id');
...
c.category_id
:$productsList[$i]['p.category_id'] = $row['c.category_id'];
SELECT * FROM `table` WHERE '2016-11-22' BETWEEN `date_in` AND `date_out`
A LEFT [OUTER] JOIN can be faster than an equivalent subquery because the server might be able to optimize it better—a fact that is not specific to MySQL Server alone.
boycotts
добавить поля likes_count
, dislikes_count
, subscribtions_count
и пересчитывать их значения каждый раз, когда будет добавляться или удалятся запись из соответствующей полю таблице.