Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Стоит ли перейти на InnoDB

Сообщения:  [1-5] 

 
 автор: cheops   (08.11.2006 в 12:41)   письмо автору
 
   для: sd607   (08.11.2006 в 01:07)
 

История у вас не подвергается изменениям? Только для чтения? Тогда её можно раздробить на множество таблиц (например, по дате, связка за 2005, 2004, 2003 и т.п. годы). Каждая из таблиц будет иметь разумный объём и может обслуживаться независимо.

   
 
 автор: sd607   (08.11.2006 в 01:07)   письмо автору
 
   для: cheops   (07.11.2006 в 22:16)
 

А запросы как ни крутил, не придумал каким образом приспособить к выборке из многотабличной структуры (структуру, которую не придумал как разбить на доп. таблицы см. ниже).
Все же поторопился я с закрытием темы.

Таблицы предназначены для хранения моих злополучных сообщений, таковых две:

Первая:

CREATE TABLE messages(
id int(11) NOT NULL auto_increment,
from_id int(11) NOT NULL,
to_id int(11) NOT NULL,
msg_id int(11) NOT NULL,
readstatus tinyint(1) DEFAULT 0,
PRIMARY KEY  (id)
)


И вторая:


CREATE TABLE messages_text(
id int(11),
message TEXT,
postdate DATETIME,
PRIMARY KEY  (id)
)


Связь идет по msg_id = id. Сам же запрос думаю так же легко представить. Сорт делаю по id по убыванию.

Если предложите каким образом можно сделать разбивку и запрос на выборку из такой структуры на несколько таблиц:

messages0
messages1
messages2
...
messages_text0
messages_text1
messages_text2
...

Буду бесконечно благодарен.

На текущий момент у меня таких связок две. Первая хранит свежие сообщения: около 1 млн. строк. Вторая историю: около 2 млн. строк.

   
 
 автор: cheops   (07.11.2006 в 22:16)   письмо автору
 
   для: sd607   (07.11.2006 в 16:06)
 

Добавлю лишь, что InnoDB может работать надёжнее MyISAM, но скорость при этом может падать и в 2 и 4 и в 7 раз... У вас что за таблица, нет возможности её разбить на несколько или ввести репликационный сервер?

   
 
 автор: sd607   (07.11.2006 в 18:48)   письмо автору
 
   для: sd607   (07.11.2006 в 16:06)
 

Всем спасибо. Поспешил. Нашел ответы на этом форуме.

   
 
 автор: sd607   (07.11.2006 в 16:06)   письмо автору
 
 

Сразу два вопроса в одном:

1.
Есть таблица на 1 млн. записей. Размер таблицы 80 мб. Ожидаймое кол-во записей до 4 млн. Имеет ли смысл эту тяжесть перебросить с MyISAM на InnoDB. (в таблице присутствует три типа полей: int(11), varchar и datetime, выборка производится исключительно по полям int)

2.
Есть две таблицы. Данные добавляются следующим образом:
1. Добавляю строку в таблицу 1, получаю с нее last_id.
2. Добавляю строку в таблицу 2 и присваиваю одному из полей значение last_id

Возникла проблема, не всегда идет добавление в таблицу 2 либо с другим last_id. Поможет ли переход на InnoDB и подключение транзакций. Если да, пожалуйста, приведите код на php добавления с помощью последних.
И сразу тогда, как можно будет определить успешность завершения транзакции?

ps На сайте мускула где-то вычитал, что InnoDB успешно обрабатывает в среднем 800 обращений (выборка, апдейт, вставка, удаление) в секунду. Мне этого более чем. Это на случай если кто-то будет говорить о замедлении скорости обработки по сравнению с MyISAM.

На сервере 4-ый мускль.

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования