Използването на индекси в достъпа мс
За първи път бях изправен пред индексите на Linux-рутер, когато броенето на интернет трафика. След като прочетох в интернет, че "правилните" момчета администраторите изграждане рутер изключително на Linux, и това е по-подходящ някои стари, отдавна се използва от Celeron, който е само купчина желязо ще даде нов живот. И отидох: Събрани Celeron 700, 256 MB, 40 GB твърд диск, два мрежови на софтуера: Debian, MySQL, Apache, IPTABLES, samopisny скрипт (IPTABLES трупи и синтактичен анализ записи в таблица, база данни MySQL). Аз го и забрави. Вярно служил този рутер повече от година, когато имах нужда да погледнете статистиката, използвани от трафик през последния месец. В PhpMyAdmin бързо вкара SQL-заявка, кликнете върху Старт, аз прошумоля на сървъра твърдия диск и, че за него в продължение на двадесет минути. Призовава за недоволни потребители, разбрах, че в интернет те са двадесет минути не. Трябваше да направи нещо.
Размерът на таблицата на базата данни е просто огромен - от ходене на милиони записи. Първото нещо, което идва на ум е да се раздели с голяма маса в по-малка, например чрез месец (разделяне). Но първо реших да се опитам да добавят индекс на среща. Резултатът бях приятно изненадан - статистика ден плюе по-малко от секунда. Тъй като проектирането на индексите на структурата на базата данни, аз обръщам голямо внимание.
Как индекси работят?
За да се разбере защо увеличение поле изпълнението на индексираната заявка, трябва да се разбере как базата данни произвежда операция по вземане на проби. Нека да има някои от таблиците, от които искате да получите записи, които съответстват на посоченото условие. Ако не е индексиран областта, която участва в състояние на подбор, е необходимо да се провери всеки запис на таблицата, за да изпълните условията за подбор - сканиране на цялата таблица, и то е много бавно (особено ако масата е голям). Ако полето е включен в състояние на подбор се индексира, стойността на това поле вече подредени (възходящ или низходящ ред), което позволява да се използват ефективни алгоритми за търсене без да е необходимо да се сканира на масата.
Кога да използвате индекси?
Веднага предупреждавам: трябва да устои на изкушението да направи всички полета в индексираната масата. На първо място, това ще се отрази негативно на часа на поставяне и актуализиране на регистрите. На второ място, индексите трябва да се съхраняват някъде - ще се увеличи размерът на файла на базата данни.
Подлежащо на индексиране нужда да направите:
- полета, използвани за създаването на условия за допустимост (отиват след КЪДЕ дума в SQL-заявка);
- полето, където нещо - в този случай би било полезно да се уточни реда на сортиране;
- полета, които се използват, за да се присъединят към маси в запитването.
Също така, ако е възможно, е необходимо да се направи уникален индекс и не позволяват нулеви стойности.
За да се определи кои индекси се използват от заявките за достъп до оптимизатора може да се търси в плана за изпълнение на заявка.
За да обобщим, правилното използване на индекси в Access увеличава скоростта на изпълнение на заявките, обаче, както всеки силен агент, в Кодове за достъп трябва да се използва разумно. Индексирани полета са един от най-важните фактори при увеличаване на производителността на приложенията на Microsoft Access.
И накрая, не мога да спомена, че е важно качеството на проектиране и монтаж на кабелната мрежа, още повече, че за инсталирането на местен ценообразуване мрежа е достъпно която ви позволява да забравите за спестяване на изграждането на СКС и LAN.