[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оптимизация
optimrom
Привет, у меня есть таблица с 20,000 строк - в ней не какие данные не меняются - только выводятся - и не добавляются.
В ней есть данные и уникальной для каждой строки ID - по ID выводятся данные из нее.
Можно разделить ее на 2 и более таблиц - стоит ли это делать ? - таким образом быстрее будет производиться вывод? или 20к строк это мелочи?
Пример (Разделить Таблицу на 4 таблицы - и при запросе пользователя проверять какой ID был запрошен (например if($ID<5001){Таблица 1}elseif($ID<10001){ Таблица 2 и так далее})).

Еще один вопрос есть другая таблица с 200 записями - в ней тоже не чего не меняется только выводится - стоит ли эту таблицу перевести в массив? - записей мало 200 строк - можно создать массив такой (правда будет не много больше потреблять оперативки но зато на один запрос с базу будет меньше)
kjdgh
Запросы типа SELECT кэшируются, так что думаю не стоит об этом волноваться.

_____________
Новичек в программировании и вообще не разбираюсь в этом, так что не вините.



optimrom
Цитата (kjdgh @ 8.06.2014 - 21:03)
Запросы типа SELECT кэшируются, так что думаю не стоит об этом волноваться.

А если у меня тип таблиц InnoDB и настройки по умолчанию - запросы SELECT тоже кэшируются?
kjdgh
Лень вспоминать как и где проверять кеши эти. На время генерации страницы смотри. Второй раз страница сгенерируется быстрее, если кеш включен.

http://habrahabr.ru/post/41166/

_____________
Новичек в программировании и вообще не разбираюсь в этом, так что не вините.



sergeiss
Цитата (optimrom @ 8.06.2014 - 21:00)
20к строк это мелочи

Вот это, если убрать знак вопроса, будет совершенно верным утверждением smile.gif Если у тебя стоят правильные индексы, то никаких проблем не будет.

Но если у тебя будет действительно большая таблица (точнее, будет предполагаться, что данных будет много), например, 20 млн. записей, то тут уже имеет смысл подумать. Только не на таблицы разбивать, а на партиции. Подчеркиваю - это для большого количества данных!

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
optimrom
Цитата (sergeiss @ 8.06.2014 - 22:41)
Цитата (optimrom @ 8.06.2014 - 21:00)
20к строк это мелочи

Вот это, если убрать знак вопроса, будет совершенно верным утверждением smile.gif Если у тебя стоят правильные индексы, то никаких проблем не будет.

Но если у тебя будет действительно большая таблица (точнее, будет предполагаться, что данных будет много), например, 20 млн. записей, то тут уже имеет смысл подумать. Только не на таблицы разбивать, а на партиции. Подчеркиваю - это для большого количества данных!

Индекс ID уникальный.
"Только не на таблицы разбивать, а на партиции" - в каком смысле на партии?
sergeiss
Цитата (optimrom @ 8.06.2014 - 23:32)
а на партиции" - в каком смысле на партии?

Ты где-то увидел слово "партии"? Я написал "партиции". https://www.google.ru/search?client=opera&q...=UTF-8&oe=UTF-8

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vital
20к записей - это капля. Любой базе мелочь.

А автору стоит почитать про Партиционирование, и Репликацию.
На будущее. А не велосипеды придумывать.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
kjdgh
" Пример (Разделить Таблицу на 4 таблицы - и при запросе пользователя проверять какой ID был запрошен (например if($ID<5001){Таблица 1}elseif($ID<10001){ Таблица 2 и так далее}))."

Вот тебе и принцип работы партиций, только таблица остаётся одна))

_____________
Новичек в программировании и вообще не разбираюсь в этом, так что не вините.



Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.