мне нужно запросить таблицу InnoDB (100 Millon строки), но это невозможно Beause его заблокировать таблицу и останавливает мое приложение (должен продолжать работать на выполнение запроса)Копирование TMP таблицы на диске MySQL занимает слишком много времени
QUERY:
EXPLAIN SELECT SQL_NO_CACHE ptown_billing.historial_cobros.FECHA,
"Cobro ok." as ESTADO,
ptown_common.carriers.CARRIER as CARRIER,
ptown_common.precios.DESCRIPCION as DESCRIPCION,
SUM(ptown_common.precios.PRECIO_SIN_IVA) AS PRECIO_CLIENTE,
SUM(ptown_common.precios.COMISION) AS COMISION,
count(*) as CANTIDAD,
ptown_common.productos.producto as PRODUCTO,
ptown_common.origen.origen AS ORIGEN,
ptown_common.keywords.KEYWORD,
ptown_common.shortcode.SHORTCODE,
ptown_common.partners.PARTNER,
ptown_common.empresas.EMPRESA
FROM ptown_billing.historial_cobros
INNER JOIN ptown_billing.cdr ON cdr.ID_CDR = historial_cobros.ID_CDR AND
cdr.DB_MODULO='ptown_suscripcion'
INNER JOIN ptown_suscripcion.transacciones ON
ptown_suscripcion.transacciones.id_transaccion = ptown_billing.cdr.ID_TRANSACCION
INNER JOIN ptown_common.solicitudes ON
ptown_common.solicitudes.ID_SOLICITUD = ptown_suscripcion.transacciones.ID_SOLICITUD
INNER JOIN ptown_common.keywords_partners ON
ptown_common.keywords_partners.ID = ptown_common.solicitudes.ID_KWPT
INNER JOIN ptown_common.partners ON
ptown_common.partners.ID_PARTNER = ptown_common.keywords_partners.ID_PARTNER
INNER JOIN ptown_common.empresas ON
ptown_common.empresas.ID_EMPRESA = ptown_common.keywords_partners.ID_EMPRESA
INNER JOIN ptown_common.keywords ON
ptown_common.keywords.ID_KEYWORD = ptown_common.solicitudes.ID_KEYWORD
INNER JOIN ptown_common.carriers ON ptown_common.carriers.ID_CARRIER = ptown_billing.cdr.ID_CARRIER
INNER JOIN ptown_common.productos_config ON
ptown_common.productos_config.id_configuracion = ptown_suscripcion.transacciones.id_configuracion
INNER JOIN ptown_common.shortcode ON
ptown_common.shortcode.ID_SHORTCODE = ptown_common.productos_config.ID_SHORTCODE
INNER JOIN ptown_common.origen ON ptown_common.productos_config.id_origen = ptown_common.origen.id_origen
INNER JOIN ptown_common.productos ON ptown_common.productos.id_producto = ptown_common.productos_config.id_producto
INNER JOIN ptown_common.precios ON ptown_billing.cdr.ID_PRECIO = ptown_common.precios.ID_PRECIO
WHERE ptown_billing.historial_cobros.fecha = '2013-11-26' AND
ptown_billing.historial_cobros.respuesta = 000
GROUP by FECHA,DESCRIPCION,CARRIER,PRODUCTO,ORIGEN,KEYWORD,SHORTCODE,PARTNER,EMPRESA
Любой предлагаешь? Я попытался установить tmp_table_size = 51200, но не получил никаких результатов.
Какой запрос вы выполняете? какой тип двигателя вы используете? –
@JungsuHeo im использует таблицу innodb. Это SELECT SQL_NO_CACHE из таблицы с 150-метровыми строками и 15-ю объединениями с группами по и подсчетам. Это процесс хранения данных, который мне нужно запускать каждую ночь. –
Благодарим за сообщение. не могли бы вы дать нам более подробную информацию? что-то вроде этого. http://dba.stackexchange.com/questions/16172/trying-to-optimize-query-for-performance-mysql. то другие люди могут вам помочь. Благодарю. –