![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 127
|
В одном из моих приложений для соцсети, заметил, что при увеличении размера таблицы в БД mysql с данными пользователей от 500 тыс до 4.5 миллионов записей время выборки для одинаковых запросов увеличивается с 0,1 до 4 секунд.
Вопрос - время выборки из БД зависит от количества записей в таблице или же от количества записей всей БД? Если разбить таблицу на 10 таблиц, то это поможет уменьшить время запроса или же надо по нескольким базам информацию раскидывать? Хочу так сделать в первой все uid начинаются с 0, во второй с 1, и т.д. до 9. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 72
|
А индекс в таблице есть? Для индексированной таблицы при нормальном запросе 4,5кк записей - пшик, мгновенно почти. Плюс надо учитывать - что тебе важнее в этой таблице - писать или читать? Время выборки зависит от количества записей в таблице. Если писать - я бы сделал много таблиц неиндексированных, если читать - одну индексированную.
|
|
|||||
|
Lorem ipsum
|
Оптимизация базы данных складывается из целого ряда рецептов, начиная с типа/структуры таблицы и заканчивая оптимизацией самого запроса. Не имея информации, как у тебя там все устроено, можно лишь порекомендовать доки вдоль и поперек по ключевым моментам:
http://mysql.ru/docs/man/Table_types.html http://mysql.ru/docs/man/Column_types.html http://mysql.ru/docs/man/MySQL_Optimisation.html и т.д.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 127
|
Индекса в таблице 2 - по uid пользователя и в авто инкремент. Всего полей в строчке 12. Надо и писать и читать причем записи должны быть уникальными по uid, запрос такой например
|
|
|||||
|
Сорри за оффтоп, но
. Первый шаг к тому, что ваш сервер положат sql-инъекцией
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 127
|
Он мне чтобы делать случайную выборку из базы. Вначале узнаю сколько всего записей в таблице, а потом беру случайные числа в этих пределам и достаю соответствующих пользователей из базы по автоинкременту.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|