Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Реализация кэша БД (https://javascript.ru/forum/server/74381-realizaciya-kehsha-bd.html)

laimas 06.07.2018 23:59

Разговор ни о чем. Можно привести массу примеров, когда кеш как файл, это бесполезная работа.

Чего и для чего вы это делаете мне трудно судить, но первое что надо сделать, это оптимизировать запросы, EXPLAIN в помощь. И только потом кеширование.

А один или два запроса, это еще не показатель успеха.

xShift 07.07.2018 10:42

laimas, окей. покажу свою базу. Мне это все не нужно уже.

Цитата:


...

$STRUCT_STATS = [
'field_id' => [
'type' => 'num', // int
'auto' => true, // auto increment
'length' => 255,
'value' => 0
],
'field_date' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_time' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_track' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_route' => [
'type' => 'text',
'length' => 255,
'fill' => true
],
'field_user_agent' => [
'type' => 'text',
'length' => 255,
'fill' => true
],
'field_ip' => [
'type' => 'text',
'length' => 255,
'fill' => true
],
'field_referer' => [
'type' => 'text',
'length' => 500,
'fill' => true
],
];

$STRUCT_HASH = [
'field_id' => [
'type' => 'num', // int
'auto' => true, // auto increment
'length' => 255,
'value' => 0
],
'field_statistics' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_comments' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_nodes' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_messages' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_roles' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_points' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_users' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_categories' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_files' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_twilio' => [
'type' => 'text',
'length' => 100,
'fill' => true
],
'field_settings' => [
'type' => 'text',
'length' => 100,
'fill' => true
]
];

// Compare structs
define('SCHEMA',
array(
'statistics' => $STRUCT_STATS,
'comments' => $STRUCT_COMMENTS,
'nodes' => $STRUCT_NODES,
'messages' => $STRUCT_MESSAGES,
'roles' => $STRUCT_ROLES,
'points' => $STRUCT_POINTS,
'users' => $STRUCT_USER,
'categories' => $STRUCT_CATEGORIES,
'files' => $STRUCT_FILES,
'twilio' => $STRUCT_TWILIO_SETTINGS,
'settings' => $STRUCT_SITE,
'hash' => $STRUCT_HASH
)
);

...
Вот тип структуры, который подхватывает движок. Запросы я не пишу вообще(они сами консервируются и сами выполняются, сами оптимизируются). Вместо JOIN UNION. Все в ядре.

Я добавил структуру - движок создал таблицу. Я описал поля и действие - движок выполнил запрос.

Вот например:

Цитата:

// twilio settings
$dbx::query('c', 'revolver__twilio', $STRUCT_TWILIO_SETTINGS);

$STRUCT_TWILIO_SETTINGS['field_id']['value'] = 0;
$STRUCT_TWILIO_SETTINGS['field_sid']['value'] = 'XXXXXXXXXXXX';
$STRUCT_TWILIO_SETTINGS['field_token']['value'] = 'XXXXXXXXXXXX';
$STRUCT_TWILIO_SETTINGS['field_number']['value'] = 'XXXXXXXXXXXX';
$STRUCT_TWILIO_SETTINGS['field_enabled']['value'] = 0;

$dbx::query('i', 'revolver__twilio', $STRUCT_TWILIO_SETTINGS);
И все это на файловом кэше.

Кэш файл бесполезным быть не может. Любая база это и так файл. У меня база отвалится, а сайт будет работать как ни в чем не бывало. Только операции записи не будут выполняться.

laimas 07.07.2018 12:51

И это все из-за чего весь сыр бор?

Кэш файл бесполезным быть не может - еще как может быть, если изначально использовать неподходящий базис.

https://habr.com/post/322532/

xShift 08.07.2018 14:41

Я не могу читать этих е%аных лобосеков и прочее PHD. Это же интеллектуальные извращенцы. Пишут чуть ли не книги ни о чем. Ни кода ни примеров ни даже актуальных графиков. Трендами меряются и все.

У меня родилась идея кстати на фоне предыдцэущего mysql запроса реализовать вместо update insert на базе duplicate key. И назову я это inject запрос. Это сделает мою либу еще удобнее :)

laimas 08.07.2018 15:00

Я не понимаю вообще о чем речь среди жаргона, делайте что хотите. )

xShift 08.07.2018 16:19

Эх. Как мне жить? Нет мне места в этом мире ... :D лобосеки нэгодуэ.

xShift 12.07.2018 09:15

Если кому интересно, вот про ON DUPLICATE KEY UPDATE английском(русском писать не умею - идет один сленг, мат и ненависть к мудакам).

https://cyberx.pro/backend/mysql-dup...te-and-insert/

laimas 12.07.2018 12:27

Цитата:

Сообщение от xShift
русском писать не умею - идет один сленг, мат и ненависть к мудакам

К себе нужно тоже критично относится, а об этом хватит и трех слов по русски чтобы понять. Вот только причем тут предыдущие запросы, дублирование и файловый кеш. Вот это, если вашими же словами, трешь полнейший.

xShift 12.07.2018 17:16

Вот я и стараюсь. Со славянами я развиваюсь на 30% при вей их адекватности. С англичанами и американцами на 90%. Мозги ни к черту в российской системе. Я живу в планетарной. У меня включился российский мост в англию и один тамошний разработчик - я начал создавать что то чего еще не делал и щебенькать на английском. У меня включились хабры - я стал лохом потому что они обосрали не только меня но еще и пол системы с которой я работал. Лучше на корявом английском с воспитанными, чем с такими ухмыляющимися лобосеками. Ведь вы понимаете о чем речь? Вы есть в разработчиках ? У нас конфедерация. Мы почти ни к кому не лезем и ни с кем особо не разговариваем, просто иногда скучно через транслитерацию общаться. Половина смысла теряется и начинаешь использовать фразы типа "не нормальным не можешь не считаться". Скажите так кому нибудь - от вас застрелиться. Поэтому все периодически высаживают негатив на родной язык. А так мосту привыкнешь просто перестанешь разговаривать, что не очень хорошо. Мозги в планетарке - ты уже не человек для остальных людей, все стает системным и систематическим, если оно полезно.


Часовой пояс GMT +3, время: 08:50.