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

Как да изчислим дисковото пространство, използвано от MySQL таблицата от типовете данни на колоните и броя на редовете?

  • Има повече режийни разходи, отколкото споменахте. 20 байта/ред може бъдете близо .
  • Не вярвайте на SHOW TABLE STATUS за да дадете "Редове", използвайте SELECT COUNT(*) ... Забележете как се отклони с почти коефициент 2.
  • Изчислете по друг начин:135245332480 / 3017513240 =45 байта.
  • От 45 байта заключавам, че много от клетките са NULL?
  • Всяка колона във всеки ред има 1- или 2-байта надпис.
  • ROW_FORMAT има значение.
  • TEXT и BLOB (и т.н.) имат коренно различни правила от простите типове данни.
  • Индексите отнемат много повече от 6-те байта, които споменахте (вижте друга публикация ).
  • Структурата BTree има някои допълнителни разходи. Когато се зарежда по ред, 15/16 от всеки блок се запълва (това е споменато някъде в документите). След разбиване, диапазонът може лесно да бъде запълнен на 50-100%; BTree гравитира до 69% пълен (оттук и 1,45 в другата публикация).

Запазване на равно количество място за архивиране...

  • Не знам дали това правят.
  • Ако използват mysqldump (или подобен), това не е безопасна формула - текстът дъмпът на базата данни може да бъде значително по-голям или по-малък.
  • Ако използват LVM, тогава имат място за пълен двоичен дъмп. Но това няма смисъл заради КРАВА.
  • (И така, отказвам се от Q3.)

Възможно ли е облачната услуга да извършва някакъв вид компресия?




  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. Как да съхранявате празна стойност като цяло число

  3. Не може да се променя информацията за заглавката

  4. Как да задам стойност по подразбиране за Empty($_POST)?

  5. кой е по-добрият начин да промените набора от знаци за огромни таблици с данни?