Что такое мощность в MySQL?



что такое мощность в MySQL? Пожалуйста, объясните на простом, нетехническом языке.



Если индексная деталь любой таблицы отображает мощность поля, скажем group_id Как 11, тогда что это значит?

506   8  

8 ответов:

максимальная мощность: все значения уникальны

минимальная мощность: все значения одинаковы

некоторые столбцы называются столбцами высокой мощности, потому что у них есть ограничения (например, уникальные), запрещающие вам помещать одно и то же значение в каждую строку.

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

Википедия обобщает мощность в SQL следующим образом:

на SQL (язык структурированных запросов), термин мощностью относится к уникальность значений данных, содержащихся в определенном столбце (атрибуте) a база данныхстол. Чем меньше мощность, тем больше повторяющихся элементов в столбце. Таким образом, столбец с минимально возможной мощностью будет иметь то же значение для каждой строки. Базы данных SQL используют мощность, чтобы помочь определить оптимальный план запроса для данного запроса.

Это оценка количества уникальных значений в индексе.

для таблицы с одним столбцом первичного ключа, мощность должна быть равна количеству строк в таблице.

дополнительная информация.

Это в основном связано со степенью уникальности значений столбца в соответствии со статьей Википедии, связанной с Ками.

Почему важно учитывать, что это влияет на стратегию индексирования. Будет мало точек индексирования столбца с низкой мощностью только с 2 возможными значениями, поскольку индекс не будет достаточно избирательным для использования.

чем выше мощность, тем лучше дифференциация строк. Дифференциация помогает перемещаться по меньшим ветвям для получения данных.

поэтому более высокие значения сердечности означают:

  • лучшая производительность read-запросов;
  • большой размер базы данных;
  • худшая производительность запросов на запись, потому что данные скрытого индекса обновляются.

в простом виде мощность-это количество строк или кортежей в таблице. Нет. колонок называется "градус"

в математических терминах мощность-это количество значений в наборе значений. Набор может содержать только уникальные значения. Примером может служить набор "а".

пусть множество " A " будет: A={1,2,3} - мощность этого множества равна |3|.

Если набор " A " содержит 5 значений A={10,21,33,42,57}, то мощность равна |5|.

что это означает в контексте mysql, так это то, что мощность столбца таблицы является количеством уникальных значений этого столбца. Если вы не глядя на мощность вашего первичного ключевого столбца (например. table.id), то мощность этого столбца покажет вам, сколько строк содержит эта таблица, так как для каждой строки в таблице есть один уникальный идентификатор. Вам не нужно выполнять "COUNT(*)" на этой таблице, чтобы узнать, сколько строк она имеет, просто посмотрите на мощность.

С руководство:

мощностью

оценка количества уникальных значений в индексе. Это обновлено путем запуска ANALYZE TABLE или myisamchk-A. мощность подсчитывается на основе статистики, хранящейся в виде целых чисел, поэтому значение не является обязательно точные даже для небольших столов. Чем выше мощность, чем больше вероятность того, что MySQL использует индекс при выполнении соединений.

и анализ из Перконы:

CREATE TABLE `antest` (
  `i` int(10) unsigned NOT NULL,
  `c` char(80) default NULL,
  KEY `i` (`i`),
  KEY `c` (`c`,`i`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

mysql> select count(distinct c) from antest;
+-------------------+
| count(distinct c) |
+-------------------+
|               101 |
+-------------------+
1 row in set (0.36 sec)


mysql> select count(distinct i) from antest;
+-------------------+
| count(distinct i) |
+-------------------+
|               101 |
+-------------------+
1 row in set (0.20 sec)

mysql> select count(distinct i,c) from antest;
+---------------------+
| count(distinct i,c) |
+---------------------+
|               10201 |
+---------------------+
1 row in set (0.43 sec)

mysql> show index from antest;
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table  | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| antest |          1 | i        |            1 | i           | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| antest |          1 | c        |            1 | c           | A         |        NULL |     NULL | NULL   | YES  | BTREE      |         |
| antest |          1 | c        |            2 | i           | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
3 rows in set (0.00 sec)

mysql> analyze table sys_users;
+--------------------------------+---------+----------+----------+
| Table                          | Op      | Msg_type | Msg_text |
+--------------------------------+---------+----------+----------+
| antest                         | analyze | status   | OK       |
+--------------------------------+---------+----------+----------+
1 row in set (0.01 sec)


mysql> show index from antest;
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table  | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| antest |          1 | i        |            1 | i           | A         |         101 |     NULL | NULL   |      | BTREE      |         |
| antest |          1 | c        |            1 | c           | A         |         101 |     NULL | NULL   | YES  | BTREE      |         |
| antest |          1 | c        |            2 | i           | A         |       10240 |     NULL | NULL   |      | BTREE      |         |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
3 rows in set (0.01 sec)

Comments

    Ничего не найдено.