Нужно немного разъяснения по поводу MySQL Indexes

Попробуйте entry_points.console_scripts параметр в установке () вызов. Как описано в setuptools документы , это должно сделать то, что я думаю, что Вы хотите.

Для репродуцирования здесь:

from setuptools import setup

setup(
    # other arguments here...
    entry_points = {
        'console_scripts': [
            'foo = package.module:func',
            'bar = othermodule:somefunc',
        ],
    }
)

6
задан Rob 21 November 2009 в 03:59
поделиться

3 ответа

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

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

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

5
ответ дан 9 December 2019 в 22:36
поделиться

Индекс ускоряет выбор, но замедляет вставки и обновления. Вам не нужно создавать индекс для каждой возможной комбинации столбцов, которую вы можете вообразить. Обычно я просто создаю очевидные индексы, которые, как я знаю, буду часто использовать, и добавляю их только в том случае, если я вижу, что они необходимы после измерения производительности. База данных может использовать индекс, даже если он не охватывает все столбцы в запросе.

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

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

3
ответ дан 9 December 2019 в 22:36
поделиться

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

ALTER TABLE widgets ADD INDEX name_and_price_index(widget_name, widget_price);

Указанный выше индекс будет использоваться, если вы ВЫБИРАете по widget_name или widget_name + widget_price (но не только widget_price).

Как указывает Митмаро, используйте EXPLAIN в запросе, чтобы увидеть, из каких индексов должен выбрать MySQL, а также какой индекс он будет использовать. См. здесь для получения более подробной информации.

3
ответ дан 9 December 2019 в 22:36
поделиться
Другие вопросы по тегам:

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