Какие-либо базы данных поддерживают автоматическое Создание индекса?

$("#form").submit(function() { $("#saveButton").attr("disabled", true); });

не лучший ответ, но работает для меня.

24
задан Eddie 28 February 2009 в 13:54
поделиться

10 ответов

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

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

Наконец, существует МНОГО денег в промышленности для архитекторов базы данных, и они предпочитают статус-кво.

однако, базы данных становятся более интеллектуальными. При использовании профилировщика SQL-сервера с Microsoft SQL server, Вы найдете способы ускорить свой сервер. Другие базы данных имеют подобных профилировщиков, и существуют сторонние утилиты, чтобы сделать эту работу.

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

-Adam

9
ответ дан Adam Davis 28 November 2019 в 23:47
поделиться

Это - лучший вопрос, который я видел на stackoverflow. К сожалению, у меня нет ответа. bigtable Google действительно automatially индексирует правые столбцы, но BigTable не позволяет произвольные соединения, таким образом, пространство задач намного меньше.

единственный ответ, который я могу дать, является этим:

Однажды кто-то спросил, "Почему не может компьютер просто проанализировать мой код и и скомпилировать & статически введите части кода, которые чаще всего работают?"

Люди решают эту проблему сегодня (например, Игрунок в FF3.1), и я думаю, "автоиндексируя" реляционные базы данных, тот же класс проблемы, но это не так приоритет. Десятилетие с этого времени, вручную добавляя индексы к базе данных будут считать пустой тратой времени. На данный момент мы застреваем с контролем медленных запросов и рабочих оптимизаторов.

13
ответ дан jcampbell1 28 November 2019 в 23:47
поделиться

SQL MS 2005 также поддерживает внутреннюю ссылку предложенных индексов для создания на основе данных использования. Это не так завершено или точно как Настраивающийся Советник, но это автоматически. Исследование dm_db_missing_index_groups для получения дополнительной информации.

4
ответ дан Nick 28 November 2019 в 23:47
поделиться

Существует сценарий на, я думаю блог SQL MS со сценарием для предложения индексов в SQL 2005, но я не могу найти точный сценарий прямо сейчас! Его просто вещь из описания, поскольку я вспоминаю. Вот ссылка еще на некоторую информацию http://blogs.msdn.com/bartd/archive/2007/07/19/are-you-using-sql-s-missing-index-dmvs.aspx

пз только для SQL Server 2005 +

3
ответ дан mcintyre321 28 November 2019 в 23:47
поделиться

Существуют инструменты там для этого.

Для SQL MS, используйте SQL Profiler (для записи действия против базы данных), и Настраивающий Советник по вопросам Механизма базы данных (SQL 2005) или Индексный Настраивающий Мастер (SQL 2000), чтобы проанализировать операции и рекомендовать индексы или другие улучшения.

2
ответ дан BradC 28 November 2019 в 23:47
поделиться

Я соглашаюсь с тем, что Adam Davis говорит в своем комментарии. Я добавлю, что, если бы такой механизм существовал для создания индексов автоматически, наиболее распространенная реакция на эту функцию была бы, "Это хорошо... Как я выключаю его?"

1
ответ дан Bill Karwin 28 November 2019 в 23:47
поделиться

Google App Engine делает это (см. index.yaml файл).

0
ответ дан Gabriele D'Antona 28 November 2019 в 23:47
поделиться

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

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

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

1
ответ дан Mark Baker 28 November 2019 в 23:47
поделиться

Похоже, MySQL не имеет удобного профилировщика. Может быть, вы хотите попробовать что-то вроде this , php-класса, основанного на профилировщике MySQL.

1
ответ дан 28 November 2019 в 23:47
поделиться

. Да, некоторые движки поддерживают автоматическое индексирование. Одним из таких примеров для mysql является Infobright, его движок не поддерживает «обычные» индексы, а вместо этого неявно индексирует все - это механизм хранения на основе столбцов.

Поведение таких движков имеет тенденцию сильно отличаться от того, что разработчики (и да, вам не нужно быть РАЗРАБОТЧИКОМ, чтобы даже подумать об использовании Infobright;

2
ответ дан 28 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

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