Re: faster output from php and postgres
От | Frank Bax |
---|---|
Тема | Re: faster output from php and postgres |
Дата | |
Msg-id | 5.2.0.9.0.20030523124321.043d1bf0@pop6.sympatico.ca обсуждение исходный текст |
Ответ на | faster output from php and postgres (Mukta Telang <mukta@darya.nio.org>) |
Список | pgsql-php |
At 11:39 AM 5/23/03, Mukta Telang wrote: >Hi, >I am dealing with a database with many-to-many relation and have a php >script that joins these tables and displays the output. >But the problem is that after entering some 50 records the output is >very slow! >I can count till 50 before the script produces the output! >The complete description of the problem is written below.. >Thanks in advance, >Mukta > > > > >description in detail: > > >database part: > >Three tables: paper,author and author_paper > >"A paper has many authors and an author has many papers." >In this way there is many to many relation. > >The attributes of paper are: paper_id (primary key),title,journal,year >etc > >The attributes of author are: author_id(primary key) and name > >The attributes of author_paper are: author_id ,paper_id and level >( author with level=1 is the main author of the paper ) > > > >php part: > >For an author: >1. get author_id from author table >2. select all paper_ids from author_paper table >3. For each of the above selected paper_ids: > a. print all the attributes of paper > b. select all authors of the paper and print their names in the >order of their "level" Are you doing this with one select, or four selects, or something in between? IAC, this doesn't sond like a php issue, but rather an issue with how you build your select statement. If your SELECT statment is generated dynamically, then print it out when the script runs. Then copy/paste the final SELECT statement, add "EXPLAIN" to the beginning of it and run it via psql. Now you have enough info to post a question to pgsql-sql@postgresql.org - include the following: - schema of various table involved (like you did above). - copy of SELECT statement(s) - output of EXPLAIN for the SELECT statement that is taking too long. Frank
В списке pgsql-php по дате отправления: