|
|
|
| Скажите, на какой объём лучше делать таблицы, т.е. например если в таблице будет миллион строк..поиск по ключе будет затруднителен? | |
|
|
|
|
|
|
|
для: xpom
(18.04.2011 в 16:44)
| | Количество строк не имеет большое значение, гораздо большее значение имеет объем таблицы в мегабайтах (чем меньше, тем лучше таблица работает, так как для многих операций она может целиком быть размещена в базе данных). Ключи располагаются в отдельном файле (MyISAM), поэтому их скорость будет зависеть от размера файла ключей. | |
|
|
|
|
|
|
|
для: cheops
(18.04.2011 в 18:31)
| | а в мегабайтах до скольки мегабайт можно создавать таблицу, для нормальной работы?
чем больше строк, тем больше ключей, следовательно больше размер и медленнее будет работать блица? | |
|
|
|
|
|
|
|
для: xpom
(18.04.2011 в 18:35)
| | >а в мегабайтах до скольки мегабайт можно создавать таблицу, для нормальной работы?
От здорово зависит от сервера и частоты запросов, чем чаще будут обращаться, тем чаще таблица будет заблокирована, тем больше будет очередь ожидающих запросов. До 100 Мб при средней посещаемости на виртуальном хостинге скорее всего ничего не будет.
>чем больше строк, тем больше ключей, следовательно больше размер и медленнее будет
>работать блица?
Это зависит от ключа и его селективности, горстка ключей может обслуживать очень большую таблицу. | |
|
|
|
|
|
|
|
для: cheops
(18.04.2011 в 18:42)
| | 100 Мб, это очень мало( а если гигабайт 5 будет..что ж тогда будет? И с посещением 5-6 тысяч в сутки | |
|
|
|
|
|
|
|
для: xpom
(18.04.2011 в 18:46)
| | Есть разные способы, для начала можно вынести сервер на выделенный сервер с кучей памяти, которая выделена исключительно MySQL, включить буферы, настроить сервер. Затем можно разбивать таблицу на части, потом можно разделять задачи выборки и записи по разным серверам. В общем приемов достаточно много и зависит от характера таблицы и данных, которые в ней хранятся. | |
|
|
|
|
|
|
|
для: xpom
(18.04.2011 в 18:35)
| | и если будет превышать обьем таблица с данными, можно будет продолжить в следующей? Можно будет создать такой запрос к базе, чтобы продолжал искать в другой таблице? | |
|
|
|
|
|
|
|
для: xpom
(18.04.2011 в 18:43)
| | Можно, например, объединив два запроса при помощи конструкции UNION. Если используется MySQL версии 5.1 или выше, то разбить таблицы можно также при помощи сегментирования, тогда запросы к таким сегментированным таблицам будут протекать как будто это единая таблица. | |
|
|
|
|
|
|
|
для: cheops
(18.04.2011 в 18:53)
| | Во общем можно делать таблицу для занесения большого количества информации...а потом уже, если что разбивать на несколько и делать запрос объединив таблицы? | |
|
|
|
|
|
|
|
для: xpom
(18.04.2011 в 19:05)
| | Да, как один из вариантов. | |
|
|
|