|
|
|
|
|
для: hars
(30.06.2006 в 18:49)
| | Задача выполнена.
Было сделано:
1, Оптимизирован запрос(огромное спасибо cheops )
2, Расширил буфер памяти до 100 метров (set-variable=key_buffer=100M ,прописывается в my.ini)
3, Проиндексировал поля по которым осуществлялась идентификация
Время выполнения составило порядка 40 минут,уже неплохо( celeron 1.7G / 382 Mb).
Всё же если кто знает как слить 2 и более столбца в один ,запросом(и) или залить из файла три столбца в один ,подскажите,т.к. лопатить с помощью PHP 410 Mb что то не очень хочется,это ОЧЕНЬ долго,и может повиснуть и всё что угодно.
Заранее спасибо. | |
|
|
|
|
|
|
|
для: cheops
(30.06.2006 в 18:41)
| | В данном конкретном случае
face 179 Mb
face_prava 136 Mb
prava 304 Mb | |
|
|
|
|
|
|
|
для: hars
(30.06.2006 в 14:16)
| | Напомните размеры таблиц - какая таблица сколько места занимает? | |
|
|
|
|
|
|
|
для: hars
(30.06.2006 в 14:16)
| | Попробую перенести только идентификатор соответствия (из одной в другую),возможно так будет быстрее.
Кто знает как лучше работать с большими БД(1 и более гига),помогите пожалуйста.
Или стоит вообще использовать другую БД?! | |
|
|
|
|
|
|
|
для: cheops
(30.06.2006 в 12:00)
| | видимо Update не подходит ,пытался выполнить запрос на обновление одной строки,mysql забирает весь проц ,может проще создать новую таблицу,но тогда опять же данные надо как то вытаскивать,а их много.Замкнутый круг какой-то получается :( | |
|
|
|
|
|
|
|
для: cheops
(30.06.2006 в 12:00)
| | Поставил обрабатывать 100 записей запрос выполняется уже 6 минут и до сих пор,посылал из командной строки.Может есть какой-то другой альтернативный метод,с тем же результатом? (размер face 1.3 гига)
.......WHERE face.sis_num<100 and prava.sis_num=face_prava.sispr AND
face_prava.sisfc=face.sis_num; | |
|
|
|
|
|
|
|
для: cheops
(30.06.2006 в 12:00)
| | спасибо сейчас попробую | |
|
|
|
|
|
|
|
для: cheops
(30.06.2006 в 11:59)
| | А ещё лучше по частям его осуществляйте т.е. добавьте в WHERE-условие оганичение скажем сначала обработайте первые 10000 записей, потом следующие 10000 и т.д. | |
|
|
|
|
|
|
|
для: hars
(30.06.2006 в 11:18)
| | Попробуйте следующий запрос
UPDATE face, prava, face_prava
SET face.ser_vd = prava.ser,
face.num_vd = prava.num,
face.dat_vyd = prava.data_vid,
face.srok_deistv = prava.srok_deyst,
face.kategor = prava.kateg,
face.stazh = prava.otmetki
WHERE prava.sis_num=face_prava.sispr AND
face_prava.sisfc=face.sis_num;
|
| |
|
|
|
|
|
|
|
для: cheops
(29.06.2006 в 15:28)
| | имеется три таблицы
1.face -в ней надо произвести обновление
2.prava -данные которые надо перетащить в face
3.face_prava -содержит идентификаторы соответствия таблиц между собой
Проще говоря надо из трёх таблиц сделать одну,экономить место нужно,да и быстрее будет запрос выполняться к одной таблице чем к трём. | |
|
|
|
|