Идея ясна, но мне кажется не очевидна, как мне кажется. Если бы была та же черная рамка, но, скажем коротка надпись «Этот подарок нашли до Вас» или что-то вроде все таки было бы понятнее…
мда, а вы тоже самое не пытались делать с помощью встроенных утилит мускула? он ведь и сам может поместить базы в оперативу и писать апдейты на диск с отложением, а?
Есть решение намного проще. Дело в том, что когда вы вытаетесь записать значение в несуществующий массив:
$my->some['sub'] = 'test';
то вызывается метод волшебный метод __get. Т.е. вы получаете значение $my->some, а потом в это значение пытаетесь добавить индекс ['sub']. Чтобы всё-таки записать элемент в массив тостаточно передавать его по ссылке:
Насчет кеша.
Один запрос будет быстрее, чем 100 обращений к memcached, тем более к диску.
Мне нравится такая схема: в самой таблице с объектами (как вариант в присоединенной, всеже шаблонов на тип может быть несколько) хранится кеш. Выборка айдишников идет вместе с кешем, смотрится если кеш есть — выводится он. Если кеш пуст — вызывается что-то, что кеш заполнит, внесет его в таблицу объектов и отдаст выводу. Лучше сразу после получения кешей определять объекты с промохом, делать на всех один запрос и заполнять кеш тоже одним запросом.
В результате при пустом кеше: 1 запрос легкий, кеш пустой, одни айдишники. 1 запрос тяжелый, скопом собираем всю информацию для всех объектов, которые нужно вывести. Один мощный апдейт.
При полном кеше: один запрос достаточно тяжелый по трафику, но зато в нем уже прямой вывод на страницу.
Когда передо мной стояла задача сделать блог для программистоя, я использовал Geshi Highlighter. Перебрал я довольно много всяких приблуд, в том числе на perl, shell, специальный лексический анализатор какой-то, но в конечном итоге остановил выбор на Geshi. В нём реализована поддержка кучи языков и разработка довольно активно продолжается, судя по списку рассылки. Отличная штуковина, что ни говори.
1. Meet Composer
2. Virtual Machines and Homestead
3. A Gentle Introduction to Routing, Controllers, and Views
4. Passing Data to Views
5. Blade 101
6. Environments and Configuration
7. Migrations
8. Eloquent 101
9. Basic Model/Controller/View Workflow
10. Forms
11. Dates, Mutators, and Scopes
12. Form Requests and Controller Validation
13. View Partials and Form Reuse
14. Eloquent Relationships
15. Easy Auth
16. Ogres Are Like Middleware
17. Midterm Review
18. Route Model Binding
19. Manage Your Assets
20. Flash Messaging
21. Many to Many Relations (With Tags)
rm -rfd путь
в дебиане и убунте удаляет миллионы файлов без построения списка файлов…2) По поводу GROUP BY тоже есть (выглядеть будет примерно так — пример с книги):
db.runCommand({"group" : {
... "ns" : "stocks",
... "key" : "day",
... "initializer" : {"time" : 0},
... "$reduce" : function(doc, prev) {
... if (doc.time > prev.time) {
... prev.price = doc.price;
... },
... "condition" : {"day" : {"$gt" : "2010/09/30"}}
... })
Соответствие MySQL и MongoDB запросов:
memo.undr.su/2010/01/27/sootvetstvie-mysql-i-mongodb-zaprosov/
www.dealtaker.com/blog/2010/05/12/php-mongodb-sitting-in-a-tree-part-1/
ну и так на будущее
www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/
www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
PS удачных велосипедов
$my->some['sub'] = 'test';
то вызывается метод волшебный метод __get. Т.е. вы получаете значение $my->some, а потом в это значение пытаетесь добавить индекс ['sub']. Чтобы всё-таки записать элемент в массив тостаточно передавать его по ссылке:
class MyClass {
protected $data = array('some' => array('sub' => 'data'));
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function &__get($name) {
return $this->data[$name];
}
}
Один запрос будет быстрее, чем 100 обращений к memcached, тем более к диску.
Мне нравится такая схема: в самой таблице с объектами (как вариант в присоединенной, всеже шаблонов на тип может быть несколько) хранится кеш. Выборка айдишников идет вместе с кешем, смотрится если кеш есть — выводится он. Если кеш пуст — вызывается что-то, что кеш заполнит, внесет его в таблицу объектов и отдаст выводу. Лучше сразу после получения кешей определять объекты с промохом, делать на всех один запрос и заполнять кеш тоже одним запросом.
В результате при пустом кеше: 1 запрос легкий, кеш пустой, одни айдишники. 1 запрос тяжелый, скопом собираем всю информацию для всех объектов, которые нужно вывести. Один мощный апдейт.
При полном кеше: один запрос достаточно тяжелый по трафику, но зато в нем уже прямой вывод на страницу.