Mysql
 sql >> база данни >  >> RDS >> Mysql

Топ 10 интересни факта и съвети за MySQL

MySQL е най-бързо развиващата се система за управление на релационни бази данни с отворен код със 100 милиона изтегляния до момента. Това е популярен избор на база данни за използване в уеб приложения и понастоящем се използва от много големи уебсайтове, включително Facebook, Twitter, Wikipedia, Flickr, YouTube и т.н. Сега, нека да разберем топ 10 интересни факта и съвети за MySQL.

Интересни факти и съвети за MySQL

1. MySQL поддържа до 64 индекса на таблица. Всеки индекс може да се състои от 1 до 16 колони. Максималният размер на индекса е 1000 байта (767 за InnoDB).

2. Максималният размер на ред в MySQL таблица е 65 535 байта. И максималната стойност на Signed Integer е 2,147,483,647, а стойността на Unsigned Integer е 4,294,967,295. В смесена таблица с CHAR и VARCHAR MySQL ще промени CHAR на VARCHAR.

3. Ако индекс PRIMARY KEY или UNIQUE се състои само от една колона, която има целочислен тип, можете също да се обърнете към колоната като „_rowid“ в операторите SELECT.

4. За да промените стойността на AUTO_INCREMENT, използвайте „ALTER TABLE <име на таблица> AUTO_INCREMENT =стойност;“ или „SET INSERT_ID =стойност;“

5. За да ограничите публичен достъп до MySQL, използвайте опцията “skip-networking” в конфигурационния файл. Когато е активиран, MySQL слуша само връзки на локални гнезда и игнорира всички TCP портове. А параметърът „bind-address“, който е зададен на „127.0.0.1“, ограничава MySQL да бъде достъпен само от локалния хост.

6. Ако MySQL има много установени връзки (т.е. уебсайт без постоянни връзки), можете да подобрите производителността, като зададете thread_cache_size на стойност, различна от нула. 16 е добра стойност за начало. Увеличете стойността, докато вашите threads_created не нарастват много бързо.

7. NO_AUTO_VALUE_ON_ZERO потиска автоматичното увеличение за 0. Само NULL генерира следващия пореден номер. Този режим може да бъде полезен, ако 0 е съхранено в колоната AUTO_INCREMENT на таблицата. (Между другото, съхраняването на 0 не е препоръчителна практика.)

8. Конфигурационните опции „innodb_analyze_is_persistent“, „innodb_stats_persistent_sample_pages“ и „innodb_stats_transient_sample_pages“ осигуряват подобрена точност на статистиката на InnoDB индекс и последователност при рестартирането на MySQL. InnoDB предварително изчислява статистически данни, които помагат на оптимизатора да реши кои индекси да използва в заявка, като взема извадка от част от индекса. Можете да регулирате размера на извадката, която InnoDB прави за всеки индекс. Получените статистически данни вече могат да се съхраняват при рестартиране на сървъра, вместо да се преизчисляват (и евентуално да се променят) поради рестартиране и някои събития по време на изпълнение. По-точните статистически данни могат да подобрят производителността на заявката, а аспектът на постоянството може да поддържа ефективността на заявката стабилна. Когато функцията за постоянна статистика е активирана, статистическите данни се преизчисляват само когато изрично стартирате ANALYZE TABLE за таблицата.

9. InnoDB освобождава паметта, свързана с отворена таблица, за да облекчи натоварването на паметта на системи с огромен брой таблици. Алгоритъм на LRU избира таблици, които са преминали най-дълго без достъп. За да резервирате повече памет за отворени таблици, увеличете стойността на опцията за конфигурация –table_definition_cache=#.

10. Задайте параметър table_cache, за да съответства на броя на отворените таблици и едновременните връзки. Гледайте стойността на open_tables и ако тя расте бързо, трябва да увеличите размера на „table_cache“. А за параметъра „open_file_limit“ задайте тази граница като 20+max_connections+table_cache*2. Ако имате сложни заявки „sort_buffer_size“ и „tmp_table_size“ вероятно ще бъдат много важни. Стойностите ще зависят от сложността на заявката и наличните ресурси, но 4Mb и 32Mb, съответно, са препоръчителни отправни точки.

Забележка:Това са стойности „на връзка“. Така че, вземете предвид натоварването и наличния си ресурс, когато задавате тези параметри. Например sort_buffer_size се разпределя само ако MySQL трябва да извърши сортиране, внимавайте да не остане без памет.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL високо използване на процесора

  2. MySQL - принудително да не се използва кеш за тестване на скоростта на заявката

  3. PHP фатална грешка:Клас 'PDO' не е намерен

  4. Синтаксис на SQL ALTER TABLE – Изброен от СУБД

  5. Как да импортирате и експортирате CSV файлове с помощта на PHP и MySQL