Если вы не хотите включать JQuery, я бы попробовал несколько облегченных библиотек AJAX.
Мой любимый reqwest. Это всего лишь 3.4kb и очень хорошо построено: https://github.com/ded/Reqwest
Вот пример запроса GET с reqwest:
reqwest({
url: url,
method: 'GET',
type: 'json',
success: onSuccess
});
Теперь, если вы хотите что-то еще более легкое, я бы попробовал microAjax всего на 0,4kb: https://code.google.com/p/microajax/
Это все код прямо здесь:
function microAjax(B,A){this.bindFunction=function(E,D){return function(){return E.apply(D,[D])}};this.stateChange=function(D){if(this.request.readyState==4){this.callbackFunction(this.request.responseText)}};this.getRequest=function(){if(window.ActiveXObject){return new ActiveXObject("Microsoft.XMLHTTP")}else{if(window.XMLHttpRequest){return new XMLHttpRequest()}}return false};this.postBody=(arguments[2]||"");this.callbackFunction=A;this.url=B;this.request=this.getRequest();if(this.request){var C=this.request;C.onreadystatechange=this.bindFunction(this.stateChange,this);if(this.postBody!==""){C.open("POST",B,true);C.setRequestHeader("X-Requested-With","XMLHttpRequest");C.setRequestHeader("Content-type","application/x-www-form-urlencoded");C.setRequestHeader("Connection","close")}else{C.open("GET",B,true)}C.send(this.postBody)}};
И вот пример вызова:
microAjax(url, onSuccess);
Я не думаю, что поддержки MySQL осуществили представления, который является тем, в чем Вы нуждались бы, но это не поможет Вам в этой ситуации так или иначе. Является ли индекс на представлении или на базовой таблице, это должно было бы быть записано и обновлено в какой-то момент во время обновления базовой таблицы, таким образом, это все еще вызовет проблемы скорости записи.
Ваш лучший выбор состоял бы в том, чтобы, вероятно, составить сводные таблицы, которые периодически обновляются.
Вы рассмотрели абстракцию Ваших данных обработки транзакций из Ваших аналитических данных обработки так, чтобы они могли оба быть специализированы для соответствия их уникальным требованиям?
основная идея, являющаяся этим, у Вас есть одна версия данных, которые регулярно изменяются, это было бы стороной обработки транзакций и требует тяжелой нормализации и легких индексов так, чтобы операции записи были быстры. Вторая версия данных структурирована для аналитической обработки и имеет тенденцию быть менее нормализованной и в большей степени индексированной для быстрых операций создания отчетов.
Данные, структурированные вокруг аналитической обработки, обычно создаются вокруг методологии куба организации хранилищ данных, состоявшей из таблиц фактов, которые представляют стороны куба и таблиц измерений, которые представляют края куба.
Вы только хотите одно индексное представление? Маловероятно, что запись в таблицу только с одним индексом была бы настолько подрывной. Нет ли никакой первичный ключ?
, Если каждая запись является большой, Вы могли бы улучшить производительность путем выяснения, как сократить его. Или сократите длину индекса, в котором Вы нуждаетесь.
, Если это - таблица только для записи (т.е. Вы не должны делать обновлений), это может быть смертельно в MySQL, чтобы начать архивировать его, или иначе удалять записи (и индексные ключи), требуя, чтобы индекс начал заполнять (многократное использование) слоты от удаленных ключей, вместо того, чтобы просто добавлять новые индексные значения. Парадоксальный, но Вы более обеспечены с большей таблицей в этом случае.