По-бърз достъп до големи БД

madmax3_

Registered
Здавейте

Искам да попитам следното:

Имам БД примерно с 20 полета и 50000 записа. Искам да взема стойността само на едно поле от даден запис. Ще се увеличи ли бързодействието ако направя 20 таблици с по едно поле и търся в дадената таблица?

Те ще са поне две полета, защото първото ще е ID, но това не е от значение.
 
Не те разбрах ,но се надявам да ти помогна .Зависи от начина. Можеш да проверяваш всяко едно едно поле в базата данни докато стигнеш до желания резултат( ако се намира на първо място - ок ,но ако е на последно ? ), може и да структирираш данните в базата данни и чрез по-сложен алгоритъм да стигаш до тях .

едит: Ето ти пример - в таблица записваш имена , но имената са твърде много , примерно 3000. Какво правиш ? Можеш да направиш таблица за всяка буква от азбуката.След като търся някое име , взимаш първата буква от името , и според нея , търсиш в определена таблица .
 
Заявките ще са от рода на

SELECT `pole` FROM db_name WHERE `id` = нещо LIMIT 1

Въпроса ми е дали търсенето ще бъде по-бързо, ако таблицата има по-малко полета (в случая само две - id и pole) или много полета (id, pole1, pole2, ...., poleN)
 
Заявките,функциите и т.н. работят само с тези аргументи,които им зададеш .
С тази заявка ти посочваш къде да търси, по какво да търси и броя на резултатите.
Алгоритъмът е един цъкъл, който проверя дали (написано поле == masiv[id]) и след това този масив се увеличава с една стойност и се прехвърля на следващото id .
Другите полета не участват.
 
50000 записа за една таблица с 20 полета са нищо.Оптимизирай таблицата, сложи индекси на колоните по които търсиш, и оптимизирай заявките.
И предполагам ще получиш перфектен резултат на който няма какво по голямо бързодействие да му се търси.
 

Back
Горе