Пишу этот урок, надеясь на то, что есть добрые люди и они кинут мне мелочи
Начнем с пользователей онлайн. Сделаем таблицу типа MEMORY. Что это нам даст? Скорость загрузки будет быстрее из-за того, что данные будут храниться в оперативной памяти.
Теперь добавим уникальный индекс, чтобы скрипт быстрее искал нужную нам строку.
В MFS длина логина 15 символов, а в таблице пользователей онлайн 25 символов. Вопрос - зачем лишние 10 символов? Исправим это запросом:
Все запросы к таблице пользователей идут такого вида. Где имя пользователя. А индекса то не стоит на имя пользователя. Непорядок. Исправляем запросом:
Добавили уникальный индекс, чтобы ещё быстрее работал скрипт.
Улучшим ещё таблицу пользователей, убрав лишний бред. Я знаю, велик будет больше всех ругаться, что не правильно дату хранить в int и ip хранить в varchar. На это я отвечу, я не знаю как в типе int хранить ip, если они обрезаются до целого значения, и время у меня в типе date всегда обрезается до нуля. Так что насчёт этого, если что не так велик, то поправь меня.
Идём дальше. Кто слышал про страну из 150 символов? Я, например, такого не знаю. Поэтому сделаем страну длиной из 20 символов (должно хватить).
Число рефералов и визитов рефералов и 150 символов. Кто знает, что это за число должно быть? Тоже исправляем. И время последнего входа в аккаунт тоже меняем.
В итоге получается такой запрос к базе:
На сегодня всё. Если будут мои любимые + и мелочь сюда: R183338471932, то будут новые статьи. Всем спасибо за внимание.
Начнем с пользователей онлайн. Сделаем таблицу типа MEMORY. Что это нам даст? Скорость загрузки будет быстрее из-за того, что данные будут храниться в оперативной памяти.
ALTER TABLE `users_online` ENGINE = MEMORY
Теперь добавим уникальный индекс, чтобы скрипт быстрее искал нужную нам строку.
ALTER TABLE `users_online` ADD UNIQUE (
`visitor`
)
`visitor`
)
В MFS длина логина 15 символов, а в таблице пользователей онлайн 25 символов. Вопрос - зачем лишние 10 символов? Исправим это запросом:
ALTER TABLE `users_online` CHANGE `user` `user` VARCHAR( 15 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
Все запросы к таблице пользователей идут такого вида. Где имя пользователя. А индекса то не стоит на имя пользователя. Непорядок. Исправляем запросом:
ALTER TABLE `tb_users` ADD UNIQUE (
`username`
)
`username`
)
Добавили уникальный индекс, чтобы ещё быстрее работал скрипт.
Улучшим ещё таблицу пользователей, убрав лишний бред. Я знаю, велик будет больше всех ругаться, что не правильно дату хранить в int и ip хранить в varchar. На это я отвечу, я не знаю как в типе int хранить ip, если они обрезаются до целого значения, и время у меня в типе date всегда обрезается до нуля. Так что насчёт этого, если что не так велик, то поправь меня.
ALTER TABLE `tb_users` CHANGE `joindate` `joindate` INT( 10 ) NOT NULL ,
ALTER TABLE `tb_users` CHANGE `lastiplog` `lastiplog` VARCHAR( 15 ) NOT NULL ,
CHANGE `chatpaid` `chatpaid` DOUBLE( 9, 4 ) NOT NULL DEFAULT '0.000'
ALTER TABLE `tb_users` CHANGE `lastiplog` `lastiplog` VARCHAR( 15 ) NOT NULL ,
CHANGE `chatpaid` `chatpaid` DOUBLE( 9, 4 ) NOT NULL DEFAULT '0.000'
Идём дальше. Кто слышал про страну из 150 символов? Я, например, такого не знаю. Поэтому сделаем страну длиной из 20 символов (должно хватить).
Число рефералов и визитов рефералов и 150 символов. Кто знает, что это за число должно быть? Тоже исправляем. И время последнего входа в аккаунт тоже меняем.
В итоге получается такой запрос к базе:
ALTER TABLE `tb_users` CHANGE `country` `country` VARCHAR( 20 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
CHANGE `referals` `referals` INT( 10 ) NOT NULL DEFAULT '0',
CHANGE `referalvisits` `referalvisits` VARCHAR( 10 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '0',
CHANGE `lastlogdate` `lastlogdate` VARCHAR( 10 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL
CHANGE `referals` `referals` INT( 10 ) NOT NULL DEFAULT '0',
CHANGE `referalvisits` `referalvisits` VARCHAR( 10 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '0',
CHANGE `lastlogdate` `lastlogdate` VARCHAR( 10 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL
На сегодня всё. Если будут мои любимые + и мелочь сюда: R183338471932, то будут новые статьи. Всем спасибо за внимание.
6 комментарии
0 загрузки
Детали
- Первый релиз 11 дек 2011
- Последнее обновление 03 авг 2026
- Документация Есть
- Содержимое файлов Исходные файлы
- Всего товаров 14
- Рейтинг (0)
- Регистрация 21 фев 2011
- Уровень 0
- Пользователь подтверждён Да
- Телефон подтверждён Нет
- Email подтверждён Нет

ffb67640
- 15 сен 2012и получилась дата регистрации вида: 1509, назад вернул и все пользователи стали зарегестрированы 000.00.00
Хорошо хоть мало времени прошло с резерва
daranger
- 16 дек 2011(0.020000 Z) цена такого типа стала, как переделать?
vlaf
- 13 дек 2011VELIK505,
я на вскидку взял) почти попал xDD
VELIK505
- 12 дек 2011country даже много 20. Я считал 17 символов макс. Я храню country в char(17) именно в char а не в varchar потому что если не будут забиты все 17 символов то он добьёт их пробелами что даст более быстрый доступ в отличии от varchar.
Поэтому country полюбому надо хранить в char так как у всех в основном в среднем будет 10-12 символов страна поэтому всё ок.
А вот логин допустим может быть как 3 символа так и 15 тут уже разница большая будет уходить много места на диске. А со страной само то
так что coutry везде ставьте char (17) и не сыте.
ByFly
- 11 дек 2011Что надо делать после установки скрипта MFS?
Ответ: Удалить его и заказать нормальный у фрилансера.