|
|
|
| Есть таблица пользователей. В ней примерно три десятка полей. 25 из них не обновляются почти никогда, а вот пять оставшихся - надо обновлять сравнительно часто.
Нужно какое-то решение для быстрой работы с этими полями. Сходу видится два решения:
1. Вынести эти поля в отдельную таблицу. В этом случае кэш основной таблицы не будет сбрасываться при каждом обновлении. Но придется почти к каждому запросу с получением информации о пользователе пристыковывать еще одну таблицу.
2. Сделать индекс по этим пяти полям (ну по шести на самом деле - надо добавить primary id еще). В теории это должно позволить быстро выбирать информацию прямо из индекса. Но что-то этот вариант у меня не сработал - сам mysql использовать индекс отказался, а если заставить его делать это принудительно, то никакого прироста скорости я не увидел (может не так мерил, конечно).
Какие будут рекомендации? | |
|
|
|
|
|
|
|
для: Loki
(13.10.2010 в 13:11)
| | 2. если индекс станет толщиной с таблицу - какой в нем профит? | |
|
|
|
|
|
|
|
для: Trianon
(13.10.2010 в 13:47)
| | Да он и становится толщиной в четверть таблицы:(
Теоретически профит в том, что таблица в 4 раза толще, так что из индекса выбирать, вроде как, быстрее. Правда, добавлять туда...:( | |
|
|
|
|
|
|
|
для: Loki
(13.10.2010 в 13:11)
| | Лично у меня была похожая ситуация, таблица юзеров и куча полей, в моем варианте надо было использовать поиск, поэтому я отделил самые важные поля, по которым шел поиск, и которые нужны были для отображение результата поиска.
Я к тому, что надо выбирать варинат, исходя из того, какие именно операции происходят чаще и насколько они важнее для вас. | |
|
|
|
|
|
|
|
для: captain-america
(15.10.2010 в 12:15)
| | В порядке убывания:
SELECT
JOIN
UPDATE
INSERT | |
|
|
|
|
|
|
|
для: Loki
(15.10.2010 в 14:17)
| | Я немного не про это, скажем у меня часто идет
поиск
просмотр сообщений
просмотр фото
,где требуется только часть инфы о юзере, которая у меня в 1 таблице, остальная инфа по юзеру показывается только на одной странице. Поэтому я отделил эту часть инфы в одну таблицу.
Это один из критериев по которому стоит решать, отделять ли данные или нет | |
|
|
|