Unix Technical Forum

Performance Problems With JOINS - Tunnng required or upgrade hardware?

This is a discussion on Performance Problems With JOINS - Tunnng required or upgrade hardware? within the MySQL forums, part of the Database Server Software category; --> Hi all, First sorry my bad english I having a problem with a large join with 10 tables with ...


Go Back   Unix Technical Forum > Database Server Software > MySQL

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-28-2008, 11:27 AM
Filipe Tomita
 
Posts: n/a
Default Performance Problems With JOINS - Tunnng required or upgrade hardware?

Hi all,

First sorry my bad english

I having a problem with a large join with 10 tables with 70Gb of text
data, some joins executed by index but some others not.

I´m work with HP SERVER (Proliant NL-150) a 2 Xeon 2 Duo with 3Gb Ram
and RAID 0.

When executed to a client with small datasets the retrive is fastest,
but when i try with a large dataset client the database down or left a
10 min to execute a query.

This is my.cnf

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
tmp_table_size =256M
key_buffer_size = 750M
max_allowed_packet = 10M
max_connections=400
table_cache = 4000
sort_buffer_size = 100M
read_buffer_size = 100M
read_rnd_buffer_size = 50M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_type=1
query_cache_size = 256M
query_cache_limit=25M
join_buffer_size=128M
thread_concurrency = 16
log-bin=mysql-bin

server-id = 1

innodb_buffer_pool_size = 1512M
innodb_additional_mem_pool_size = 100M
innodb_thread_concurrency=16

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


and that is a trouble SQL

####### SQL 1 ######
SELECT NAC.id, NAC.nome assunto, NAC.ordem
FROM Noticias N
INNER JOIN (
SELECT NC.noticiaId, A.id, A.nome, AC.ordem
FROM NoticiasClientes NC
INNER JOIN (AssuntosClientes AC,
Assuntos A)
ON (NC.clienteId = '".
$clienteId."'
AND NC.clienteId =
AC.clienteId
AND NC.assuntoId =
AC.assuntoId
AND AC.assuntoId =
A.id )
)NAC ON (N.dataInsercao = '".$clippingDate."')
######## SQL 2 #######

SELECT NT.id, NT.titulo as tituloNoticia, NC.tipo tipoNoticia, NI.id
Imagem, VI.nome AS veiculoNome, VI.id veiculoId, NC.impactoId
FROM (SELECT NCL.* FROM
NoticiasClientes NCL WHERE NCL.assuntoId = '".$filter."' AND
NCL.clienteId='".$clienteId."') NC
INNER JOIN (Noticias NT,
Veiculos VI, (SELECT VCL.veiculoId, VCL.clienteId, VCL.ordem

FROM VeiculosClientes VCL

WHERE VCL.clienteId='".$clienteId."'

ORDER BY VCL.ordem) VC)
ON (NT.id = NC.noticiaId
AND
NT.dataInsercao = '".$clippingDate."'
AND
VI.tipoVeiculoId IN (".$tiposVeiculos.")
AND VI.id
= NT.veiculoId
)
LEFT JOIN (ImagemNoticia
NI)
ON (NI.noticiaId =
NC.noticiaId) GROUP BY NC.noticiaId

######## SQL 3 #######

SELECT N.id, N.titulo,VCT.id veiculoId, VCT.veiculo, VCT.tipoVeiculo,
VCT.ordemVeiculo, NAC.assuntoId, NAC.impactoId, NAC.assunto,
NAC.ordemAssunto, IMN.id as imgId
FROM (Noticias N
INNER JOIN ((SELECT
NC.noticiaId, I.id as impactoId, A.nome as assunto, AC.ordem as
ordemAssunto, AC.assuntoId
FROM
NoticiasClientes NC
INNER JOIN
(AssuntosClientes AC, Assuntos A, Impactos I)
ON
(NC.clienteId = '".$clienteId."'

AND NC.clienteId = AC.clienteId

AND NC.assuntoId = AC.assuntoId

AND AC.assuntoId = A.id

AND NC.impactoId = I.id)) NAC,
(SELECT V.id,
V.nome as Veiculo, VC.ordem as ordemVeiculo, TV.nome as tipoVeiculo
FROM Veiculos
V
INNER JOIN
(VeiculosClientes VC, TiposVeiculos TV)
ON
(VC.clienteId = '".$clienteId."'

AND (TV.id IN (".$tiposVeiculos."))

AND V.id = VC.veiculoId

AND V.tipoVeiculoId = TV.id)) VCT)
ON (N.id = NAC.noticiaId
AND N.veiculoId = VCT.id))
LEFT JOIN
ImagemNoticia IMN
ON (N.id =
IMN.noticiaId)
WHERE
N.dataInsercao = '".$clippingDate."'
GROUP BY
N.id
ORDER
BY VCT.tipoVeiculo, (VCT.ordemVeiculo & VCT.id), (NAC.ordemAssunto &
NAC.assuntoId), N.id

thank´s all.

Filipe Tomita

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 02-28-2008, 11:27 AM
Paul Lautman
 
Posts: n/a
Default Re: Performance Problems With JOINS - Tunnng required or upgrade hardware?

Filipe Tomita wrote:
> Hi all,


I would suspect that your problems may be more from your subselects than
from your joins.

Make sure all your join fields can be accessed using an index and change the
subselects to joins too.


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 02:48 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.UnixAdminTalk.com