$("#form").submit(function() { $("#saveButton").attr("disabled", true); });
не лучший ответ, но работает для меня.
Существуют оптимизаторы базы данных, которые могут быть включены или присоединены к базам данных, чтобы предложить (и в некоторых случаях работать) индексы, которые могли бы выручить вещи.
Однако это не на самом деле тривиальная проблема, и когда эти средства сначала вышли, пользователи иногда находили, что это на самом деле замедлило их базы данных из-за нижней оптимизации.
Наконец, существует МНОГО денег в промышленности для архитекторов базы данных, и они предпочитают статус-кво.
однако, базы данных становятся более интеллектуальными. При использовании профилировщика SQL-сервера с Microsoft SQL server, Вы найдете способы ускорить свой сервер. Другие базы данных имеют подобных профилировщиков, и существуют сторонние утилиты, чтобы сделать эту работу.
, Но если Вы - тот, пишущий запросы, надо надеяться, Вы знаете достаточно о том, что Вы делаете для индексации правых сторон поля. Если не тогда наличие правильных индексов вероятно наименьшее количество Ваших проблем...
-Adam
Это - лучший вопрос, который я видел на stackoverflow. К сожалению, у меня нет ответа. bigtable Google действительно automatially индексирует правые столбцы, но BigTable не позволяет произвольные соединения, таким образом, пространство задач намного меньше.
единственный ответ, который я могу дать, является этим:
Однажды кто-то спросил, "Почему не может компьютер просто проанализировать мой код и и скомпилировать & статически введите части кода, которые чаще всего работают?"
Люди решают эту проблему сегодня (например, Игрунок в FF3.1), и я думаю, "автоиндексируя" реляционные базы данных, тот же класс проблемы, но это не так приоритет. Десятилетие с этого времени, вручную добавляя индексы к базе данных будут считать пустой тратой времени. На данный момент мы застреваем с контролем медленных запросов и рабочих оптимизаторов.
SQL MS 2005 также поддерживает внутреннюю ссылку предложенных индексов для создания на основе данных использования. Это не так завершено или точно как Настраивающийся Советник, но это автоматически. Исследование dm_db_missing_index_groups для получения дополнительной информации.
Существует сценарий на, я думаю блог 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 +
Существуют инструменты там для этого.
Для SQL MS, используйте SQL Profiler (для записи действия против базы данных), и Настраивающий Советник по вопросам Механизма базы данных (SQL 2005) или Индексный Настраивающий Мастер (SQL 2000), чтобы проанализировать операции и рекомендовать индексы или другие улучшения.
Я соглашаюсь с тем, что Adam Davis говорит в своем комментарии. Я добавлю, что, если бы такой механизм существовал для создания индексов автоматически, наиболее распространенная реакция на эту функцию была бы, "Это хорошо... Как я выключаю его?"
Google App Engine делает это (см. index.yaml файл).
Часть причины может быть то, что индексы только дают маленькое ускорение. Если у Вас нет подходящего индекса на большой таблице запросами, может работать так медленно, что приложение совершенно неприменимо, и возможно если оно будет взаимодействовать с другим программным обеспечением, то оно просто не будет работать. Таким образом, Вам действительно нужны индексы для права, прежде чем Вы начнете пытаться использовать приложение.
кроме того, вместо того, чтобы создать индекс в фоновом режиме и замедлить вещи далее, в то время как это создается, лучше определить индекс, прежде чем Вы начнете добавлять существенное количество данных.
я уверен, что мы получим больше инструментов, которые вынимают демонстрационные запросы и работают, какие индексы необходимы; также, вероятно, мы в конечном счете получим базы данных, которые делают, как Вы предполагаете и контролируете производительность и добавляете индексы, они думают, необходимы, но я не думаю, что они будут заменой для того, чтобы начаться с правильными индексами.
Похоже, MySQL не имеет удобного профилировщика. Может быть, вы хотите попробовать что-то вроде this , php-класса, основанного на профилировщике MySQL.
. Да, некоторые движки поддерживают автоматическое индексирование. Одним из таких примеров для mysql является Infobright, его движок не поддерживает «обычные» индексы, а вместо этого неявно индексирует все - это механизм хранения на основе столбцов.
Поведение таких движков имеет тенденцию сильно отличаться от того, что разработчики (и да, вам не нужно быть РАЗРАБОТЧИКОМ, чтобы даже подумать об использовании Infobright;