Как добавить индексы в таблицы MySQL?

Вы не можете создать вектор абстрактного типа класса, потому что вы не можете создавать экземпляры абстрактного класса и контейнеры стандартной библиотеки C ++, такие как std :: vector store values ​​(например, экземпляры). Если вы хотите это сделать, вам нужно будет создать вектор указателей на абстрактный тип класса.

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

Вы должны понимать, что C ++ и C # имеют очень мало общего. Если вы намереваетесь изучать C ++, вы должны думать об этом как о начале с нуля и прочитать хороший посвященный учебник на C ++, такой как Accelerated C ++ от Koenig и Moo.

379
задан enharmonic 17 July 2019 в 23:56
поделиться

2 ответа

ALTER TABLE `table` ADD INDEX `product_id` (`product_id`)

Никогда не сравнивайте целое число с строками в MySQL. Если id равно int , удалите кавычки.

584
ответ дан 22 November 2019 в 23:44
поделиться

Вы говорите, что у вас есть индекс, объяснение говорит об обратном. Однако, если у вас действительно есть индекс, вот как продолжить:

Если у вас есть индекс на столбце, и MySQL решает не использовать его, это может быть потому, что:

  1. В запросе есть другой индекс, который MySQL считает более подходящим для использования, и он может использовать только один. Решением обычно является индекс, охватывающий несколько столбцов, если обычный метод поиска - по значению более чем одного столбца.
  2. MySQL решает, что имеется слишком много совпадающих строк, и считает, что сканирование таблиц, вероятно, будет быстрее. Если это не так, иногда помогает ANALYZE TABLE.
  3. В более сложных запросах он решает не использовать его, основываясь на чрезвычайно интеллектуально продуманном вуду в плане запроса, который по какой-то причине просто не соответствует вашим текущим требованиям.

В случае (2) или (3), вы можете заставить MySQL использовать индекс с помощью index hint sytax, но если вы это сделаете, обязательно проведите несколько тестов, чтобы определить, действительно ли использование индекса по подсказке улучшает производительность.

17
ответ дан 22 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

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