Я не думаю, что вы можете сделать здесь много.
Запрос должен прочитать все 25M строк из индекса, чтобы подсчитать их. Тем не менее, 25M строк не так много, и я ожидаю, что на современном оборудовании это займет менее 4 минут. Это только 100 МБ данных для чтения (хорошо, на практике это больше, скажем, 200 МБ, но для считывания 200 МБ с диска не потребуется 4 минуты).
Не загружен ли сервер? Много ли вставок в эту таблицу?
Вы можете сделать небольшое улучшение, определив столбец WhoWon
как NOT NULL
в таблице. У вас действительно есть значения NULL?
А затем используйте COUNT(*)
вместо count(WhoWon)
в запросе.
Если этот запрос выполняется часто, но данные в таблице не изменяются слишком часто, вы можете создать индексированное представление, которое по существу материализует / кеширует / предварительно вычисляет эти значения, так что запрос, который запускается из такого представления будет намного быстрее.
Попробуйте этот плагин http://p.sohei.org/jquery-plugins/columnhover/
Вот как вы его используете.
<script type="text/javascript">
$(document).ready(function()
{
$('#storeListTable').columnHover({ hoverClass:'highlight'});
});
</script>
Будьте осторожны
If you don't need IE6 support, the highlighting can be done with some simple CSS:
#table tr:hover {
background-color: #ff8080;
}
+1. Использование фонового правила в .highlight td
сделало ваш 'TEST 2' хорошо работающим для меня.
'TEST 1' не будет, из-за ненужного вызова parent ()
.
Действительно ли предупреждение появляется при тестировании?
Если это так, возможно, проблема в вашем CSS. Мне потребовалось много времени, чтобы понять, что большинство стилей, примененных к тегу tr, не имеют никакого эффекта. Поэтому, в общем, вам нужно применять стили к каждому тд в строке
.highlight td {highlighted appearance}
, а не к
.highlight {highlighted appearance}