This is a discussion on Getting data in chunks. within the MySQL forums, part of the Database Server Software category; --> undbund wrote: > On Apr 10, 4:54 pm, John Andersen <j.andersen...@gmail.com> wrote: >> On Apr 10, 4:24 am, undbund ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| undbund wrote: > On Apr 10, 4:54 pm, John Andersen <j.andersen...@gmail.com> wrote: >> On Apr 10, 4:24 am, undbund <undb...@gmail.com> wrote: >> >>> Hi i am trying to retrive data in chunks like 5 at a time or 10 at a >>> time. Can anyone guide me to tutorials on how to go about doing this. >>> Thanks >> Lookup the LIMIT feature in the MySQL manual. >> John > > > I have found out how to do this using LIMIT. > > Thanks for all your help. > > Bye unless you are doing an ORDER BY (can be extremely expensive CPU-wise if you have huge tables) - using LIMIT may not give you the correct results every time. Records in a relational database are NOT inserted in order. Look at cursors. A quick google search produced this example (assuming you are using PHP) <?php //connect to the database server $connection = mysql_connect( $_SESSION['DB_SERVER'] , $_SESSION['DB_USER'] , $_SESSION['DB_PASSWORD'] ); //get the 'cursor' $cursor = $mysql_query( 'SELECT * FROM table1' , $connection ); //browse through the 'cursor' while( $row = mysql_fetch_row( $cursor ) ){ //process records, one by one. echo('<div>'); foreach( $row as $field ) { echo('<span>'); echo($field); echo('</span>'); } echo('</div>'); } ?> |
| |||
| undbund wrote: > On Apr 10, 4:54 pm, John Andersen <j.andersen...@gmail.com> wrote: >> On Apr 10, 4:24 am, undbund <undb...@gmail.com> wrote: >> >>> Hi i am trying to retrive data in chunks like 5 at a time or 10 at a >>> time. Can anyone guide me to tutorials on how to go about doing this. >>> Thanks >> Lookup the LIMIT feature in the MySQL manual. >> John > > > I have found out how to do this using LIMIT. > > Thanks for all your help. > > Bye Forgot the reference: http://rpbouman.blogspot.com/2005/09...ith-mysql.html |
| |||
| >>>> > Lookup the LIMIT feature in the MySQL manual. >>>> > John >>>> >>>> Does anyone know how LIMIT actually works in practice. I would assume >>>> that the first read would return the first X records starting at record >>>> 1. When the second read happens does the server physically start at X+1 >>>> and return X records or does it actually re-read the first X records to >>>> get to the starting point? And the third read? I guess what I'm getting >>>> at is MySQL >> >> It does need to read the records to the extent of figuring out whether >> they are to be selected, or to sort them to determine order. >> If the query cache can't be used, it needs to do this on each query. >> >>>> smart enough to remember where the last access finished (and if so, how) >>>> or do we end up reading from the start of the table each time? >> >> MySQL is smart enough to NOT make the result of one query depend on >> invisible variables set by previous queries. LIMIT is not a cursor. >> > >Thats what I suspected, which, in conjunction with the fact that the >database could change between requests, makes me wonder what you'd actually >use LIMIT for? If you want a Top Ten list (or just Top One) of something, it works fine. Just don't ask for the Second Ten. You can use LOCK TABLES if you need to, but that blocks updates. I think transactions will also work for InnoDB tables. Things may change so slowly you don't care. Does missing one entry in team rankings really matter when the new game scores are only entered once a week? Things may change so quickly you don't care. If the list of the Top 10 Most Volatile Stocks usually changes faster than you can refresh the page, does it really matter if you get 11-20 or 10-19? Sometimes up-to-date data matters more than an ordering. Some databases forbid deletions, or the data just doesn't have many deletions. How many USA states have been deleted in the last few decades? If it is likely that you (the user) want to compare adjacent entries, don't paginate by full pages. For example, show 1-8, then 6-13, then 11-18, so there is deliberate overlap between pages. |
| ||||
| undbund wrote: > On Apr 10, 4:05 pm, Michael Austin <maus...@firstdbasource.com> wrote: >> undbund wrote: >>> Hi i am trying to retrive data in chunks like 5 at a time or 10 at a >>> time. Can anyone guide me to tutorials on how to go about doing this. >>> Thanks >> 5 pink pickles? 5 records? 5 columns? 5 words? 5 bytes? > > Obviously if you are retrieving data from MySQL it would be records! > > . > Not always the case... if you have a CLOB it is one record, but can be retrieved in parts - and you could retrieve the CLOB 5 bytes at a time.. being specific in your question will get you a more succinct and correct answer... |
| Thread Tools | |
| Display Modes | |
|
|