Составной недостаток производительности Первичного ключа в MySQL

Символ использования Windows 13 & 10 для окончания строки, Unix только один из них (я не делаю rememeber который). Таким образом, можно заменить символ 13 & 10 для символа 13 или 10 (тот, которые используют Unix).

43
задан Mifeet 20 April 2016 в 10:58
поделиться

3 ответа

INSERT и UPDATE производительность мало различается: она будет почти такой же для (INT) и (INT, INT) ключи.

SELECT производительность составного PRIMARY KEY зависит от многих факторов.

Если ваша таблица InnoDB , то таблица неявно кластеризована по значению PRIMARY KEY .

Это означает, что поиск обоих значений будет быстрее, если оба значения содержат ключ:

54
ответ дан 26 November 2019 в 22:53
поделиться

Если вы хотите сохранить сигнатуру метода получателя, я думаю, вам нужно использовать NSInvocation , который позволяет вам указывать несколько значений аргументов.

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

Лучшим решением в этой строке было бы создание класса, который инкапсулирует значения аргументов - то есть строго типизированный подход. Так, например, вместо передачи имя , фамилия , вы должны передать экземпляр класса Person . Вероятно, это лучший вариант, потому что методы с меньшим количеством аргументов могут дать более чистый код - но это совсем другая история .

они должны быть шире, так как они должны включать весь ключ из вашей основной таблицы.

Но я бы сказал, что в целом, в общем, нет. Составной первичный ключ сам по себе НЕ вызывает проблем. Однако наличие «большого» первичного ключа (например, big varchars) может иметь значение, если это перевешивает преимущества кластеризации и возможности использования покрывающих индексов.

22
ответ дан 26 November 2019 в 22:53
поделиться

Значок в трее, а панель задач основана на форме или значке окна. Значок приложения (тот, который вы видите в проводнике) задается в свойствах.

  • Индексирование этих столбцов вообще замедляет ваши INSERT , и вы определенно делаете достаточно INSERT , чтобы об этом беспокоиться. Это гораздо более беспокоит, если это таблица MyISAM, где INSERT блокирует таблицу, чем если это таблица InnoDB. Если, используя первичный ключ auto_increment, вы сможете оставить эти столбцы неиндексированными, вы выиграете от этого изменения. Однако, если вам все равно нужно поддерживать индексирование этих трех столбцов (например, если вам нужно обеспечить уникальность их комбинации), это не повлияет на производительность.
  • 3
    ответ дан 26 November 2019 в 22:53
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: