привет всем!
у меня есть такой вопросик как заКЭШировать запрос
PHP |
$res = mysql_query("SELECT COUNT(*) FROM messages WHERE receiver = " . $CURUSER["id"] . " AND unread='yes'") or die("OopppsY!"); |
PHP |
$num = mysq_result($res, 0); |
Цитата (glock18 @ 18.06.2009 - 00:24) |
только смысл? запрос не выглядит сложным |
Цитата (kirik @ 18.06.2009 - 20:21) |
Нет индексов - получишь нагрузку, есть - замечательно, разгрузишь БД |
Цитата (kirik @ 18.06.2009 - 11:21) |
Обычно быстро обрабатывается подсчет без условия WHERE |
Цитата (steep @ 18.06.2009 - 12:22) |
как такой запрос реализовать ? |
SQL |
SELECT COUNT(*) FROM messages |
Цитата (kirik @ 18.06.2009 - 16:21) |
Ну смотря как посмотреть smile.gif Обычно быстро обрабатывается подсчет без условия WHERE, потому что он берется..откуда-то из данных статистики самой таблицы. А когда ты ставишь WHERE, то строчки в прямом смысле считаются. И тут уже грамотность индексированния таблицы влияет на скорость выборки. Нет индексов - получишь нагрузку, есть - замечательно, разгрузишь БД smile.gif |
Цитата (kirik @ 18.06.2009 - 17:58) |
Тоесть если ты послал запрос на удаление строки, то будет удалятся строка не только из основной таблицы, но и из таблицы индекса, так же будет происходить с изменением индексированного поля. |
Цитата (glock18 @ 18.06.2009 - 13:10) |
но не могу без содрогания видеть как кэшируют запрос по количеству непрочтенных сообщений (и т.п.) |
Цитата (glock18 @ 18.06.2009 - 13:03) |
добавь индекс на поля, по которым ведешь поиск (WHERE и ORDER BY клаузы). здесь у тебя такое поле - id пользователя. |
Цитата (kirik @ 18.06.2009 - 18:22) |
АА! Пардон, я сдурил smile.gif Не вникал в запрос ТС, конечно, тут не нужно кэшировать ничего! smile.gif |
Цитата (kirik @ 18.06.2009 - 18:20) |
Да, тут конечно зависит от того что нужно кэшировать. В приведенном тобой примере о непрочитанных сообщений кэшировать абсолютно не нужно, информация о сообщениях должна храниться в табличке с юзерами (например в поле unread_msgs). А вот взять такой пример - есть некоторое количество новостей, и есть вывод этих новостей по страницам. Чтобы каждый раз не пересчитывать общее количество новостей (для того чтобы посчитать сколько страниц новостей будет) то такую информацию можно и закэшировать минут на 5-10.. |
Цитата (glock18 @ 18.06.2009 - 13:33) |
У меня сегодня прям день дискуссий на тему sql |
Цитата (kirik @ 18.06.2009 - 18:47) | ||
Эт хорошо "В споре рождается истина" Значит истина - гриб |
Цитата (kirik @ 18.06.2009 - 22:53) |
Товарищ sergeiss скоро всех на postgre пересадит |
Цитата (glock18 @ 18.06.2009 - 22:50) |
я учу postgre, сам к тому не прилагая усилий |
Цитата (kirik @ 18.06.2009 - 18:53) |
Хаа))) Товарищ sergeiss скоро всех на postgre пересадит |
Цитата (sergeiss @ 18.06.2009 - 19:00) |
Э, нет, батенька! ПотрудиЦЦа придёЦЦа wink.gif Там, в Постгре, еще очень много-много интересного. |
Код |
Chapter 8. Data Types Table of Contents 8.1. Numeric Types 8.1.1. Integer Types 8.1.2. Arbitrary Precision Numbers 8.1.3. Floating-Point Types 8.1.4. Serial Types 8.2. Monetary Types 8.3. Character Types 8.4. Binary Data Types 8.5. Date/Time Types 8.5.1. Date/Time Input 8.5.2. Date/Time Output 8.5.3. Time Zones 8.5.4. Internals 8.6. Boolean Type 8.7. Enumerated Types 8.7.1. Declaration of Enumerated Types 8.7.2. Ordering 8.7.3. Type Safety 8.7.4. Implementation Details 8.8. Geometric Types 8.8.1. Points 8.8.2. Line Segments 8.8.3. Boxes 8.8.4. Paths 8.8.5. Polygons 8.8.6. Circles 8.9. Network Address Types 8.9.1. inet 8.9.2. cidr 8.9.3. inet vs. cidr 8.9.4. macaddr 8.10. Bit String Types 8.11. Text Search Types 8.11.1. tsvector 8.11.2. tsquery 8.12. UUID Type 8.13. XML Type 8.13.1. Creating XML Values 8.13.2. Encoding Handling 8.13.3. Accessing XML Values 8.14. Arrays 8.14.1. Declaration of Array Types 8.14.2. Array Value Input 8.14.3. Accessing Arrays 8.14.4. Modifying Arrays 8.14.5. Searching in Arrays 8.14.6. Array Input and Output Syntax 8.15. Composite Types 8.15.1. Declaration of Composite Types 8.15.2. Composite Value Input 8.15.3. Accessing Composite Types 8.15.4. Modifying Composite Types 8.15.5. Composite Type Input and Output Syntax 8.16. Object Identifier Types 8.17. Pseudo-Types |
Цитата (kirik @ 19.06.2009 - 00:53) |
Хаа))) Товарищ sergeiss скоро всех на postgre пересадит |