Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a pure internet product so i don't have any it degree or training so i am quit confused about bandwith. is it the memory resource server or processor resource or database server load? If i use sqlite database instead of mysql server for small projects, will it speed up my site performance (since sqlite file will be used only by me)

share|improve this question
1  
This should be on SO. It is not subjective there is a specific definition. –  Loki Astari Jan 15 '11 at 15:37
2  
You are "a pure internet product"? So how did you pass the captcha? –  JohnFx Jan 15 '11 at 23:15
    
@JohnFx there are lots of tutorial on internet. I found out class at phpclasses.org (this site is great for php programmes) and i also found out an ebook on gd library and i also found out an ebook on zend framework beside i found out lots of video tutorial on you tube and zend casts and lots of other. truly to say, i still have lot to go and i had lots of support on stackoverflow you should see my how much questions i've asked like a dummy. –  Santosh Linkha Jan 16 '11 at 6:47
add comment

3 Answers

up vote 10 down vote accepted

While I cannot answer your question about using SQLite over MySQL, I can tell you what bandwidth is.

Bandwidth tells you the width of your connection, the rate at which you can push things through. Synonyms are bit rate, channel capacity, and throughput. Bandwidth is measured in bits per second, and 8 bits make one byte. (So 128KB/s = 1024Kbit/s = 1 Mbit/s.)

In telecommunications you usually see Kbps, Mbps (bits), but in memory and hard drive transfer rates expect MBps or GB/s (bytes).


Here is a thread on MSDN that discusses what exactly bandwidth numbers mean for SQL (if I am not mistaken):

http://social.msdn.microsoft.com/Forums/en/sqlsetupandupgrade/thread/ec29e210-dbc7-4399-b405-77edf2a5fe7d

Each transaction involves ten 8 KB random I/Os and 10 KB of sequential log writes. To support 100 transactions per second, the data disks have to support 1000 random 8 KB I/Os per second or approximately 8 MB/sec (1000 × 8 KB) and the log disks would have to sustain 1 MB/sec (100 × 10 KB). These sums up to a 9 MB/sec total bus bandwidth. (excertped)

share|improve this answer
    
so it does not have to do anything with the resource within the server? –  Santosh Linkha Jan 15 '11 at 10:15
2  
+1 for mentioning more then just the Internet, such as HDD, etc, which often get forgotten when talking about bandwidth –  Dan McGrath Jan 15 '11 at 10:20
    
No. In the sense of measuring a connection, it only has to do with the limit of the interface involved (e.g. older hard drives might use the ATA/IDE interface with a limit of 33, 66, or 100 MB/s). Your actual rate depends almost always on your internet connection first, and then how busy and how powerful the server is. Also, in the sense of monthly usage, "bandwidth" refers to the total amount of data that has passed through your connection. –  Mark C Jan 15 '11 at 10:25
    
Please note, I am only addressing theoretical or limiting bandwidth. Your effective bandwidth depends on a great many factors, onto which Vatine has shed light. –  Mark C Jan 15 '11 at 10:41
add comment

There are two things that govern "how fast" you can get data between two points. Your bandwidth (well, your maximum bandwidth) and your latency. The bandwidth is, essentially, "if I stream X amount of data from A to B, how many seconds will it take?" (answer, the amount of data, divided by the bandwidth (measured in bits or bytes per second)) and "if I ask for something, how long until I begin to get an answer?" (the latency, usually measured as a one-way latency, but sometimes measured as a round-trip latency).

Sometimes, the latency will change the effective bandwidth (if, for example, you need to send ACKs back during the streaming and you do not have a mechanism to allow for adjusting the amount of outstanding data in transfer between A and B).

As for the specific question about MySQL and SQLite, I can't give you an answer more enlightening than "it depends" or "try it and see".

share|improve this answer
    
+1 for including latency in the answer. Depending on the usage (eg, transactional vs bulk transfer) latency can be a bigger deal than bandwidth –  Dan McGrath Jan 15 '11 at 10:21
add comment

OK before we get misleading information here:

BANDWIDTH is a term thats entered common parlance and is now frequently misused.

What is means is AMOUNT OF STUFF in a channel - if came from communications - so if for example you could get 10 Mbits/sec down a communication channel you have a bandwidth of 10 Mbits/sec.

Going back even further - it was the frequency occupancy of a communication channel. So for example if that 10 MBits/sec link used a frequency spectrum 10 MHz wide then you have a bandwidth of 10 MHz. Clever coding and modulation schemes these days often mean that you can get a link bandwidth of (say) 1 M Bits/sec with an occupied frequency bandwidth of 100 kHz - a factor of 1:10 better. In fact, getting factors of 50 or 100 better is common.

In terms of MySQL vs Sqllite - it depends. Try it and see. There's lots and lots of factors that affect performance, and there is no one simple rule to follow to get an answer.

So BANDWIDTH as a term depends a lot on context.

In your context, where the term her been adopted (and to an extent corrupted) what this means is "how much stuff can I shove into this database, per second". In other words, what used to be called Transactions Per Second has suddenly morphed into bandwidth.


EXPANDING: Bandwidth and Latency are often confused. BANDWIDTH = an amount of stuff (usually NOT per unit of time but frequently it can be, such is the corruption of the term), LATENCY = the delay.

Examples abound in communication systems - for example when going around the world using a satellite the latency is about 300 ms. This is simply the transit time (up to satellite and down again....calculate it from the height of the satellite, the path length, and the speed of light). You might have a high bandwidth link where you can shove lots of data in a burst to the other end... but it will ALWAYS be bounded in terms of response time by the latency.

An extreme example is an oldie but a goodie: A station wagon full of mag tapes roaring down the freeway is VERY high bandwidth (there lots of data being carried) but the latency is terrible.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.