Pull to refresh
149
0
Игорь Миняйло @maghamed

Lead Architect, Magento an Adobe

Send message
>В любом случае правильнее сделать еще одну колонку с crc32, заполнять ее при вставке и группировать по >ней, а не выполнять это при SELECT. (разумеется если приоритет у выборок, а не вставок)

Да, иногда это удобно, особенно вместо того чтобы создавать составной индекс по нескольким полям (который будет достаточно большой), можно создать по одному полю, например используя ф-ию MD5 (128 бит, запись состоит из 32 символов) или если мы хотим подстраховаться больше то лучше использовать Sha1 (160 бит, 40 символов) нежели CRC32 (32 бита, беззнаковое число)

И соответственно запросы примут вид

SELECT
    *
FROM
   tbl_name
WHERE
  hash_col=MD5(CONCAT(col1, col2))
  AND col1='constant'
  AND col2='constant'; * This source code was highlighted with Source Code Highlighter.


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

>правда я не понял что вы имели ввиду — что в этом поле — text или например varchar(1000)?)
например URI (varchar(100))

>Вы уверены, насчет crc32?
Да :-)
Ну когда приезжает на конференции в Россию — тогда он Пётр, а когда на Google talks выступает, тогда Питер :-)
Все зависит от того на какой манер произносить :-)
Честно-говоря, я не считаю большим специалистом, и считаю, что есть много людей, которые разбираются лучше меня — Питер Зайцев, например :-)
Да, первая часть, как Вы написали действительно кешируется в мемкеш

select article_id from articleы where author_id = 1 (эту часть можно держать в мемкеше уже)

Но статистику можно смотреть не только по каждому автору но и по всем новостям вцелом, т.е. каждый автор может смотреть как общую статистику, так и свою лично.

может они так сервер разогревают? типа warmup :-)
Сейчас быстро нахожу и исправляю грамматические и пунктуационные ошибки у себя в статье. Просто написал, и самому стыдно :-( Спасибо, людям, которые мне в этом периодически помогают в скайпе и аське :-)
Спасибо, рад стараться, когда это кому-то полезно.
По-моему, это мой начальник меня заминусовал за этот коммент :-))) Но я все равно уйду! :-)
Честно-говоря планировал завтра уйти в отпуск. Но когда вернусь, обещаю написать еще что-нибудь по данной тематике, если это, конечно, будет интересно сообществу.
По поводу запроса LIKE с начальным %. Есть случаи, когда мы, например, записывает в БД почтовые ящики клиентов. И тогда вместо запроса

WHERE mail LIKE '%@gmail.com'

чтобы достать всех пользователей с указанным доменным именем.
Проще вставлять записи в реверс-порядке и делать индекс по этому полю по первым, скажем, 8 байтам.
Соответственно доменные имена будут вначале, а запрос примет вид

WHERE mail LIKE 'moc.liamg@%'

сорри, код забыл
<html>
<head>

<script>
function work() {
    var t = new Date().getTime();
    var node;
    for(i = 0; i<1000; i++){
       node = document.getElementById('someID');
       var myElement = document.createElement('div');
       myElement.innerHTML = "blabal";
       node.appendChild(myElement);
    };
    var t1 = new Date().getTime();
    alert(t1-t);
}
</script>

</head>
<body>
<div id="someID"></div>

<input type="button" onclick="work()" value="Test" />

</body>
</html>
неудержался

у меня Chrome — 25-28
ФФ 75-80
Вадим, подходи к моему рабочему месту. Научу, покажу… :-)
Только в другой блог запостил предложение потестить скорость обработки ДОМ модели, как увидел эти тесты… Как вернусь с работы… непременно попробую что-то вроде в разных браузерах…

var t = new Date().getTime();
var node;
for(i = 0; i<1000; i++){
node = document.getElementByID('someID');
var myElement = document.createElement('');
myElement.innerHTML = «blabal»;
node.appendChild(myElement);
};
var t1 = new Date().getTime();
Кстати, может быть кто-то из сообщества, у кого сейчас больше времени, чем у меня напишет тест лучше чем, просто прогон пустого цикла миллион раз? Для сравнения скорости обработки JS?

Например, для меня наиболее интересно как быстро интерпретатор JS работает с DOM объектами
т.е. как быстро выполняются ф-ии

document.getElementByID('someID');
document.getElementsByTagName('someName');

например такой тестик

var t = new Date().getTime();
var node;
for(i = 0; i<1000; i++){
node = document.getElementByID('someID');
var myElement = document.createElement('');
myElement.innerHTML = «blabal»;
node.appendChild(myElement);
};
var t1 = new Date().getTime();
Ок :-) постараюсь сегодня-завтра написать… Просто, достаточно работы много, но раз пообещал, тут уж не отвертишься :-)
Люди! давайти не разводить холливар! Тут, надеюсь, все понимают, что варез плохо, и что авторские права нужно соблюдать.
На самом деле качать по этой ссылке книгу я никого не заставляю… Мне кажется, что Вы все такие правильные, только не можете устоять и побороть себя когда видите шару на что-то. Можно качнуть, а потом сказать, что и креатив не о том, да и автор как-то не вызывает уважения.

Давайте по-честному, всем кому это не надо и против этого — мне минус и млюс товарищу — tzman (он первый кинул камень в мой огород), кстати я за него очень рад, что у него есть лишние 40$ на приобретение литературы.

Если нет — и комуто это пригодится, то просто напишите об этом :-)

Знаете, я не буду не перед кем оправдывать, и перед Вами в том числе… Просто многие студенты, изучающие компьютерные науки, да и те же программисты не имеют лишних денег на кники ценой в 40 долларов, которые еще к томуже приходится ждать…
Я не говорю, что это хорошо нарушать авторское право. Но если эта ссылка поможет хоть комуто одному, то я буду очень рад, даже если получу 1000 минусов и 1000 человек скажет мне свое ФЕ по этому поводу…
Я заказал её на работе. Они через амазон заказывают, но привезут еще не раньше чем через 2 недели. А чего ждать, если уже можно начать читать?
Спасибо :-), просто действительно самая долгожданная книга, после выхода первого издания в далеком 2004 году.

Очень мало чего стоящего по мускулу можно прочитать.
www.mysqlperformanceblog.com/ только спасает :-) периодически

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity