Domain: mysql.com
Stories and comments across the archive that link to mysql.com.
Comments · 1,445
-
Re:yeah right
Sure.mysql_connect() is supposed to connect to a unix-domain socket, not an IP address.
Got a reference for that?
From the MySQL manual says that will pull in defaults from my.cnf which by default indicates a unix-domain socket for access.
If you call mysql_connect() with no arguments, it does this. The additional arguments are for backwards compatability- they shouldn't be used in new programs. I recommend instead people rely on PHP's runtime configuration to specify the behavior of mysql as it makes it much easier to manage your application.Socket based connections weren't added until 3.x.
PHP versions prior to PHP 3.0.10 are irrelevant. Nobody should be using PHP 3.0.10 for new programs. -
Re:yeah right
Sure.mysql_connect() is supposed to connect to a unix-domain socket, not an IP address.
Got a reference for that?
From the MySQL manual says that will pull in defaults from my.cnf which by default indicates a unix-domain socket for access.
If you call mysql_connect() with no arguments, it does this. The additional arguments are for backwards compatability- they shouldn't be used in new programs. I recommend instead people rely on PHP's runtime configuration to specify the behavior of mysql as it makes it much easier to manage your application.Socket based connections weren't added until 3.x.
PHP versions prior to PHP 3.0.10 are irrelevant. Nobody should be using PHP 3.0.10 for new programs. -
Re:Why should this be a surprise?
* For whatever reason, the default collation is not case-sensitive. This caused some interesting bugs when we least expected.
MySQL's default collation is ALSO case insensitive (note the trailing _ci).
-
Re:Why should this be a surprise?Sorry to follow up my own post, but I've been doing some interesting reading on MySQL tuning. Here is one reason that replication could help improve performance and avoid the locking issues:
When a client performs a large SELECT on a MyISAM table, it obtains a read lock on the data. Until the SELECT completes, the server won't release the lock and service any pending write requests for the table.
That's from this article. They also say that the most likely cause of performance issues is inefficient queries. I wonder if a review of all those hand-written queries the original author describes might find many places for simple performance increases? Rewriting queries or switching to stored procedures could be the easiest sort of change to make.
The next chapter gets more into the details of replication. There is a big downside: all the slave machines must perform all the same writes as the master machine, so they could only offload so much of the read load.
The best answer to scaling a write-heavy MySQL application seems to be data partitioning. This is brand new with the MySQL 5.1 beta, so it's yet to really be tested, but it's good to know there is at least a promising option underway. -
Re:Why should this be a surprise?Sorry to follow up my own post, but I've been doing some interesting reading on MySQL tuning. Here is one reason that replication could help improve performance and avoid the locking issues:
When a client performs a large SELECT on a MyISAM table, it obtains a read lock on the data. Until the SELECT completes, the server won't release the lock and service any pending write requests for the table.
That's from this article. They also say that the most likely cause of performance issues is inefficient queries. I wonder if a review of all those hand-written queries the original author describes might find many places for simple performance increases? Rewriting queries or switching to stored procedures could be the easiest sort of change to make.
The next chapter gets more into the details of replication. There is a big downside: all the slave machines must perform all the same writes as the master machine, so they could only offload so much of the read load.
The best answer to scaling a write-heavy MySQL application seems to be data partitioning. This is brand new with the MySQL 5.1 beta, so it's yet to really be tested, but it's good to know there is at least a promising option underway. -
Re:Why should this be a surprise?Sorry to follow up my own post, but I've been doing some interesting reading on MySQL tuning. Here is one reason that replication could help improve performance and avoid the locking issues:
When a client performs a large SELECT on a MyISAM table, it obtains a read lock on the data. Until the SELECT completes, the server won't release the lock and service any pending write requests for the table.
That's from this article. They also say that the most likely cause of performance issues is inefficient queries. I wonder if a review of all those hand-written queries the original author describes might find many places for simple performance increases? Rewriting queries or switching to stored procedures could be the easiest sort of change to make.
The next chapter gets more into the details of replication. There is a big downside: all the slave machines must perform all the same writes as the master machine, so they could only offload so much of the read load.
The best answer to scaling a write-heavy MySQL application seems to be data partitioning. This is brand new with the MySQL 5.1 beta, so it's yet to really be tested, but it's good to know there is at least a promising option underway. -
Re:Why should this be a surprise?
You might want tocheck it out a bit more
... TFA isn't all that accurate.MySQL Enterprise is more than just the monitoring software
...MySQL Enterprise
Database. Monitoring. Support.
The MySQL Enterprise subscription is the only comprehensive offering of production support, monitoring tools and MySQL database software to deliver optimal performance, reliability, security, and uptime. MySQL Enterprise includes:
MySQL Enterprise Server
The MySQL Enterprise Server software is the most reliable, secure and up-to-date version for cost-effectively delivering production database applications. Subscribers receive monthly rapid updates and quarterly service packs with the latest fixes.
MySQL Enterprise Monitor
The MySQL Enterprise Monitor software provides a "Virtual DBA that monitors production database applications and minimizes security vulnerabilities, improves replication, and optimizes performance.
MySQL Production Support
MySQL Production Support enables you to maximize the availability of your database applications. Plus, with Consultative Support, receive practical advice on how to optimize your configuration, replication set-up, schema, and queries for better performance.
Contrary to what the article summary might have led some to believe, its not just a piece of software that's being made available. If you follow the link, you'll find additional links and information. Hope this helps make things a bit clearer
:-) -
Re:Mod article -1, Troll
Check out the MySQL commercial license. It's pretty clear that any kind of distribution or connection method falls under the commercial license. The example you mentioned should be requiring the customer to purchase a license for MySQL, but in reality that will rarely happen if it's up to the installer.
-
Re:Why should this be a surprise?
Sounds like you want this + a large amount of consulting. Seriously, call a sales rep. I am sure MySQL will take as much money as you want to spend.
http://mysql.com/products/enterprise/unlimited.html -
IE8 vs. PHP & MySQLIn the world of modern computing I know the technology that actually works. It is PHP & MySQL.
It was developed by such guys as Sanja Byelkin http://dev.mysql.com/tech-resources/interviews/sanja.html , Andi Gutmans http://en.wikipedia.org/wiki/Andi_Gutmans , and others.
It just works. It was created by these obscure, modest, but incredibly talented people, with minimal resources.
True, the MySQL was bought recently by the SUN. I have no doubt, it will become before long similar to IE8. A show run by MBAs in smart suits. A technology, which works not for you, but against you, on the side of the MBAs.
I do not know how to do it, but the world community should learn how to empower the people like Sanja Byelkin and Andi Gutmans. People are sick and tired of the browser monopolies with their incompatibilities, bugs, noncompliances with the standards. Something should be done about it by the world community.
-
Transition learning works best
If there is anything that I have learned in the past 10 years of writing code (since before high school), I have learned that the following sequence of learning is ideal.
1. HTML/CSS/JavaScript - Get acquainted with web programming. None of that Nambly-pambly BBCode crap that they offer on MySpace.
2. Python - I wish I had got into this before I learned C++. Good for learning about shells if you decide to switch to Linux or BSD, especially if you decide to create your own website through a webhosting provider that uses SSH.
3. C/C++ and/or PHP/MySQL. - Playing with the big-boy toys at this point. The safety net that points 1 and 2 provided has been lowered.
4. OpenGL or Assembly Programming. - Really advanced programming! OpenGL is high-level. Assembly is low-level.
From there on, the sky is the limit. -
Falcon
Very true.
This is why MySQL AB turned around and bought solidDB, and started writing Falcon in-house, a new transactional engine. -
Re:Sun?
You are basing your belief on VERY old data.
http://forums.mysql.com/read.php?97,18003,18003
This post was made in March, '05, so for the "5 years now" puts it back to 2000.
HTH
Forrest -
Re:Not a rash move
And the Innobase licensing has a time limit.
there is a reason why mysql are developing falcon.
http://forge.mysql.com/wiki/Falcon -
Re:Great news
MySQL dropped BerkeleyDB support back in version 5.1.12 (24 October 2006). MyISAM is still the default engine, and for many common applications is still a good choice. They are exposed long-term over the InnoDB purchase, but only for transactional apps, and there are several good candidates available that might replace it. Oracle are in no hurry to bury a major revenue source until the strategic advantages of doing so outweigh the short-term benefits of selling InnoDB into companies that wouldn't have bought Oracle anyway.
-
Re:Great news
MySQL dropped BerkeleyDB support back in version 5.1.12 (24 October 2006). MyISAM is still the default engine, and for many common applications is still a good choice. They are exposed long-term over the InnoDB purchase, but only for transactional apps, and there are several good candidates available that might replace it. Oracle are in no hurry to bury a major revenue source until the strategic advantages of doing so outweigh the short-term benefits of selling InnoDB into companies that wouldn't have bought Oracle anyway.
-
Re:Great news
MySQL dropped BerkeleyDB support back in version 5.1.12 (24 October 2006). MyISAM is still the default engine, and for many common applications is still a good choice. They are exposed long-term over the InnoDB purchase, but only for transactional apps, and there are several good candidates available that might replace it. Oracle are in no hurry to bury a major revenue source until the strategic advantages of doing so outweigh the short-term benefits of selling InnoDB into companies that wouldn't have bought Oracle anyway.
-
Re:Hopefully
Which MySQL do you use?
Read up. Disable autocommits, issue a BEGIN TRANSACTION, and make sure you check the success of all queries before you perform that COMMIT. -
Re:Not a rash move
well, it would be weird if they just tucked together all the different acquisitions
:)
though it isn't impossible - there's a relatively new thing, embedded mysql : http://www.mysql.com/products/embedded/.
frankly, i'd welcome such an option aside current java solution. -
Re:L, A and P, but where's M?
They did in 2006 and found about 0.224 defects per TLOC.
MySQL uses Coverity and Klockwork on their certified versions on several different platforms. The certified versions are based on the major releases of community versions, and are typically just more conservative in that they only make changes for critical and security bugs.
There's speculation that the community edition tested was actually an old report without a retest even back then, as the certified version based on that community version had zero defects reported and the bug count on the community edition was the same per TLOC as the previous report before those bugs were fixed in both versions. -
Re:Sure, right, yeah...If that's so, then why are so few FOSS applications widely adopted? You're kidding, right?
OpenOffice.org
Mozilla Firefox
Clam Antivirus
BitTorrent
Apache Web Server
MySQL Database
PostgreSQL Database
I could go on, but my fingers are getting tired...
-
Re:Lucene and WikipediaAccording to THIS, Google runs MySQL for AdWrods.
Here is some more about Google and MySQL: http://www.mysql.com/customers/customer.php?id=75
-
Re:Please stop spreading FUD.
Erm, I suggest you go away and read it, right back at you
:)
http://www.mysql.com/company/legal/licensing/
"For OEMs, ISVs, and VARs who distribute MySQL with their products, and do not license and distribute their source code under the GPL, MySQL provides a flexible OEM Commercial License"
See. If we distribute MySQL with our software, we need a commercial licence unless we distribute our source code under the GPL.
Also, if you link with the MySQL client libraries - those also use GPL, so you have to distribute the source code to your product. See http://www.mysql.com/company/legal/licensing/faq.html, the section titled "Previously, the MySQL client libraries were licensed under the LGPL (the Lesser General Public License) and now they use the GPL (the General Public License)."
So, it's pretty hard (ie impossible) to use MySQL without either getting a commercial licence or releasing your own source code under the GPL (or other FOSS licence - using their FOSS licence exception)
If you are doing otherwise, watch out!
If you are selling a scripted solution (PHP,Python etc) and require the user to download and install MySQL themselves, you're probably OK, but if you are linking with their client libraries directly and/or distributing MySQL with your own software, you will fall foul of their licencing.
So - that's why we use PostgreSQL or SQLite (depending on requirements) instead. Licencing is MUCH easier. -
Re:Please stop spreading FUD.
Erm, I suggest you go away and read it, right back at you
:)
http://www.mysql.com/company/legal/licensing/
"For OEMs, ISVs, and VARs who distribute MySQL with their products, and do not license and distribute their source code under the GPL, MySQL provides a flexible OEM Commercial License"
See. If we distribute MySQL with our software, we need a commercial licence unless we distribute our source code under the GPL.
Also, if you link with the MySQL client libraries - those also use GPL, so you have to distribute the source code to your product. See http://www.mysql.com/company/legal/licensing/faq.html, the section titled "Previously, the MySQL client libraries were licensed under the LGPL (the Lesser General Public License) and now they use the GPL (the General Public License)."
So, it's pretty hard (ie impossible) to use MySQL without either getting a commercial licence or releasing your own source code under the GPL (or other FOSS licence - using their FOSS licence exception)
If you are doing otherwise, watch out!
If you are selling a scripted solution (PHP,Python etc) and require the user to download and install MySQL themselves, you're probably OK, but if you are linking with their client libraries directly and/or distributing MySQL with your own software, you will fall foul of their licencing.
So - that's why we use PostgreSQL or SQLite (depending on requirements) instead. Licencing is MUCH easier. -
Couldn't finish the review...
[pedantic mode: on]
Had a hard time with the blurb for that matter. if you are going to mention the name of a product several times, please learn how it's written!MySQL
Not mySQL. For that matter, not mySQL, MYSQL, MY-SQL, or mSQL (that's another program actually)It's all over their website. Something that simple will help keep you from sounding amateurish as a reviewer.
[pedantic mode: off] -
Re:No, no, no.If MySQL was distributed under it, then everyone who built a web app using MySQL, would also have to give away the source code for their web app, if they make it available to users. Or they will have to pay for a commercial license. Spookily, something aimed at strengthening the sharing aspect of the FLOSS movement may just also increase revenues for companies with FLOSS products tremendously ; any commercial concern who doesn't want people to see their secret sauce is going to have to cough up for a license.
Specific to RDBMs ; GPL only kicks in if you compile in GPL code, or if you link directly to a GPL licensed library. Most RDBMs software is not directly linked to the application it is serving data to ; clients use sockets to communicate with MySQL. Now, if you link the GPL licensed MySQL client library, your code would also be subject to GPL ... if it wasn't for the specific exception that MySQL make for FLOSS projects only.
If you link commercial code to a MySQL client library, you're going to have to pay for the licensed version. But nothing actually stops you from writing your own client library. In fact, nothing stops a third party from writing a compatible client library and distributing it under commercial terms at a cost lower than the price that MySQL AB are charging, because communicating over a socket is not linking. You just can't fork the MySQL code to do it. I'd imagine it would be far easier than doing the same thing for Oracle or SQL Server, simply because the protocol is much better documented (you can look at the source, the best source of documentation there is). Not that you'd bother for MSSQL or Oracle because the cost is in the per-CPU license.
So as a commercial concern your options are not "dump MySQL or post our source on the web". They are- Give some money to MySQL AB for this marvellous product that helps us make money too
- Dump MySQL and port to another RDBMs which may also go AGPL (Postgres) or cost lots of money (MS, Oracle, etc)
- Write our own MySQL compatible client library
- Post our source in compliance to AGPL, thus contributing in a way other than money
If MySQL goes AGPL, it just means that the free ride isn't free anymore ; you pay for the software with something, whether that be money, effort, or source sharing. And that's the whole idea of copyleft licenses. It's not about getting a free ride ; it's about getting a ride and paying it forward (or backward, or sideways ; just so long as you don't pocket the proceeds and give nothing back). -
Re:Good Point, but...
I don't think it is accurate it say MySQL is more secure than MSSQL. MySQLs security track record is abysmal at best. I at least cite sources to backup my retoric.
http://forge.mysql.com/wiki/Security_Vulnerabilities_In_MySQL_Server -
Re:Web Services?
- Not all applications need to be "web apps"
- Not all data is all that "critical"
- DB engines support encrypted connections via SSL Here's how for mysql - you can REQUIRE the connection be secure.
MySQL allows encryption to be enabled on a per-connection basis. You can choose a normal unencrypted connection or a secure encrypted SSL connection according the requirements of individual applications.
Secure connections are based on the OpenSSL API and are available through the MySQL C API. Replication uses the C API, so secure connections can be used between master and slave servers.
- the db engine can restrict the type of access via type of connection, ip, host, user, password, time of day, db, table, fields accessed, functions accessed, types of operations, etc. This is all built in - not something you have to code separately and hope you "got it right".
The "researchers" who claimed that an open port is, in and of itself, a security risk, need to realize that an open port is just that - an open port. It means nothing if you don't know how the machine is configured.
-
Re:Authentication systems
"It would be much nicer to have a nice system like PostgreSQL has, where you can assign various hosts to auth methods, but usernames are unique."
So, if you had a single user, but wanted different security depending on where they connect from (local or remote), you need two usernames? In MySQL it's simple and easy to set up that common scenario.
As for various auth methods, there are plans for authentication plugins to allow it, but as far as changing the core system, I would prefer to keep it as simple and easy as possible, with complexity provided through plugins. See here:
http://forge.mysql.com/wiki/PluggableAuthenticationSupport
http://forge.mysql.com/wiki/PluggableAuthorizationSupport
Cheers,
j -
Re:Authentication systems
"It would be much nicer to have a nice system like PostgreSQL has, where you can assign various hosts to auth methods, but usernames are unique."
So, if you had a single user, but wanted different security depending on where they connect from (local or remote), you need two usernames? In MySQL it's simple and easy to set up that common scenario.
As for various auth methods, there are plans for authentication plugins to allow it, but as far as changing the core system, I would prefer to keep it as simple and easy as possible, with complexity provided through plugins. See here:
http://forge.mysql.com/wiki/PluggableAuthenticationSupport
http://forge.mysql.com/wiki/PluggableAuthorizationSupport
Cheers,
j -
Re:One question.
-
When will TIME fields have fractions of seconds?
(Bug submitted Feb 2005)
Can't be so hard. About every other database does it. -
Client GUI Tools?
One of the things I've always felt is most lacking for Open Source databases is good client-side GUI tools to do ad-hoc queries, look at the database structure, assist in copying/importing/exporting data, etc. Microsoft has a pretty good tool in this area with either the SQL Enterprise Manager/Query Analyzer combo or SQL Server Management Studio.
MySQL on the other hand has a poorly-implemented, not-well-supported equivalent to Query Analyzer called MySQL Query Browser: http://www.mysql.com/products/tools/query-browser/ It's slow, crashes often (especially when called upon to list large datasets), and has tons and tons of usability flaws (the most glaring being the impossibility to select/copy the dataset to any other applications, and the failure to support standard keyboard shortcuts like Control/Command-A to Select All.)
It seems to me that MySQL Query Browser is treated, at best, as a second-class citizen in the MySQL world. Is that the case? If so, is it simply due to a lack of qualified developers for it, or is it part of a larger strategy to keep more resources working on the back-end?
In my opinion, MySQL could benefit greatly from having some really great (or at least passable!) client-side tools. -
Re:Why not boycott Gnome? Who needs it?Then there's MySQL, which was made a platform on the basis of open source good will, and is now making quiet efforts to cut off enterprise level tools from non-paying customers. Which is a real boon to those who those who all these years thought they were working towards the lofty goal of enterprise quality tools free for all.
... That's what I mean by co-opting other peoples code. The only thing MySQL isn't distributing anymore is the Enterprise tarballs. You can still get the Enterprise sources from the repository at http://mysql.bkbits.net/, as noted in the article you cited. The Community tarballs (and binaries) can be obtained from http://dev.mysql.com/downloads/, or you can access the Community repository at bkbits.net. As for the tools, tarballs and binaries are also available at http://dev.mysql.com/downloads/, and the repositories can be accessed via http://svn.mysql.com/. -
Re:Why not boycott Gnome? Who needs it?Then there's MySQL, which was made a platform on the basis of open source good will, and is now making quiet efforts to cut off enterprise level tools from non-paying customers. Which is a real boon to those who those who all these years thought they were working towards the lofty goal of enterprise quality tools free for all.
... That's what I mean by co-opting other peoples code. The only thing MySQL isn't distributing anymore is the Enterprise tarballs. You can still get the Enterprise sources from the repository at http://mysql.bkbits.net/, as noted in the article you cited. The Community tarballs (and binaries) can be obtained from http://dev.mysql.com/downloads/, or you can access the Community repository at bkbits.net. As for the tools, tarballs and binaries are also available at http://dev.mysql.com/downloads/, and the repositories can be accessed via http://svn.mysql.com/. -
Re:Why not boycott Gnome? Who needs it?Then there's MySQL, which was made a platform on the basis of open source good will, and is now making quiet efforts to cut off enterprise level tools from non-paying customers. Which is a real boon to those who those who all these years thought they were working towards the lofty goal of enterprise quality tools free for all.
... That's what I mean by co-opting other peoples code. The only thing MySQL isn't distributing anymore is the Enterprise tarballs. You can still get the Enterprise sources from the repository at http://mysql.bkbits.net/, as noted in the article you cited. The Community tarballs (and binaries) can be obtained from http://dev.mysql.com/downloads/, or you can access the Community repository at bkbits.net. As for the tools, tarballs and binaries are also available at http://dev.mysql.com/downloads/, and the repositories can be accessed via http://svn.mysql.com/. -
Re:Ha ha
-
Re:Google needs to add an SQL function
I am not suggesting that MySQL FULLTEXT is the end all, be all of indexes. I just pointed out that it existed.
Here is the missing link to tsearch2. It looks interesting.
Just so you know, you can override the > 50% stopwords. From the documentation:
Users who need to bypass the 50% limitation can use the boolean search mode;
And MySQL 5.1 has made it more flexible:
In MySQL 5.1, it is possible to write a plugin that replaces the built-in full-text parser. For details, see Section 28.2, "The MySQL Plugin Interface". For example parser plugin source code, see the plugin/fulltext directory of a MySQL source distribution.
-
Re:Google needs to add an SQL function
I am not suggesting that MySQL FULLTEXT is the end all, be all of indexes. I just pointed out that it existed.
Here is the missing link to tsearch2. It looks interesting.
Just so you know, you can override the > 50% stopwords. From the documentation:
Users who need to bypass the 50% limitation can use the boolean search mode;
And MySQL 5.1 has made it more flexible:
In MySQL 5.1, it is possible to write a plugin that replaces the built-in full-text parser. For details, see Section 28.2, "The MySQL Plugin Interface". For example parser plugin source code, see the plugin/fulltext directory of a MySQL source distribution.
-
Re:Transplant to Postgres?Do you have a way to make Postgres clustering work as well/easily as MySQL clustering? Although "clustering" is big in Buzzwordia these days, it's not clear what that term means. Are you talking about high availability? Failover? Read scaling? Write scaling?
A single-image Postgres box will beat the pants off a MySQL cluster on write-intensive loads. See http://forums.mysql.com/read.php?25,93181,93181 for an example. -
Re:Google needs to add an SQL function
I know your just trying to be funny, but what you are describing already exists in MySQL. It's called FULLTEXT.
-
Re:Probably a good idea, provided you have PCIe
PCIe will likely give you performance more in-line with main memory (most implementations now are hitting 1-2 GB/s).
It probably won't simply due to the inefficiency of transferring over the PCI Express bus. Most implementations don't get anywhere near 1GByte/s let alone 2GByte/s, unless you are talking extremely favourable circumstances transferring 100 megabyte blocks of data, in sizes approaching the cache line size.
What is probably slowing down the transfer for his video RAM (if in fact 100MB/s is meant to be slow - I doubt he is getting this from his "aging disk" to be honest) is that slram does plain memcpy() from one location to another. This may actually be very inefficient if you consider that
1) memcpy() may be using a byte-by-byte routine, maybe even memory-based instructions (move with two memory addresses as operands) and PCI/AGP/PCIe are best at transferring data in 32-bit (4 byte) blocks. It depends how his kernel is set up, and if the kernel developers were braindead when they wrote the code. It's more efficient by far to transfer larger units of data, and far, far more efficient to pipeline loads and stores by using registers (however, not much fun on x86 - but the basic principle is load, load, load, load all into registers, then store, store, (load) store (load), store (load) :).
2) PCI host buses usually optimize burst transfers and pipelining based on CPU cache line size. Most systems this is 32 bytes or
64 bytes (128 on a Pentium 4).
3) AGP transactions are done by default in FRAME mode, which is basically AGP 1x (66MHz, 32-bit PCI) so don't expect any special performance out of it. Integrated graphics controllers are simply on virtual, internal AGP bus.
4) The page size (minimum amount you will ever send to or fetch from swap) is 4096 bytes or 8192 bytes depending on your system. Doing 4096 seperate byte transfers runs at bus speed, even doing 1024 32-bit transfers is going to run at bus speed, unless you coerce the system into write combining and bursting. Byte transfers in general do not write combine. And write-combining needs cacheable memory.
5) This is an MMIO/PIO transaction if you get the CPU to do it, in which case, you are also soaking up CPU time where on a disk it is handled DMA -> host controller -> RAM at all stages.
6) Video memory is nearly always marked as uncachable (unless you sets an MTRR or MMU page table setting)
Therefore it makes sense to look at;
1) hacking the slram driver to copy data in cache-line sized chunks, especially for swap. Some processors have instructions especially for pulling cache lines or posting them; others have streaming functions which can prefetch entire cache lines of data.
2) hacking the slram driver to copy in a tight loop in such a way that transactions are posted to the PCI bus controller in a way that it can burst them - you need more than one transfer to happen over one PCI cycle. You can do this with SSE (just flood the damn thing with register reads from RAM and then write 4 of them at once, the CPU will pipeline, perform a write-combine and your PCI controller will turn that into the most efficient burst transfer)
3a) doing that transfer using cacheable memory (set your MTRRs!, essential for 1)
or
3b) doing that transfer using a DMA controller rather than dicking around with a CPU (IOAT..?)
Some interesting reads:
http://bugs.mysql.com/bug.php?id=19975 -
ROFL.
If I HAD a problem with it I wouldn't use it. I know this will shock you to the core, but, for what I use Microsoft products for, they serve me pretty well. My games work, I seldom need to reboot, I have 15 applications open, and the machine's not crapping itself.
I'm working on a Windows machine right now, and the most troublesome piece of software I use on it is fricking FIREFOX, and I am actually considering boycotting it...To the point that I've actually bothered to download the new version of Opera for the first time in god knows how long.
Right now I'm running Eclipse, Putty(x4), Navicat, Reflections, Dreamweaver, MS Management Console, MySQL Query Browser(x2), Outlook, Firefox, and Access 2003. Nothings causing me any problems, I'm on top of all my systems, and I'm satisfied...If I wasn't I'd be using something else.
Apparently though, I'm some kind of intellectual traitor for not being miserable, and not boycotting all these products that aren't making my life a living hell, just because a zealot thinks I should. And yes, if you decide that my using Windows software is symptomatic of the moral decline of the US you're undoubtably a zealot.
People like me, who are comfortable dealing with open and closed source software do more for OSS and the free software movement than all the hairy fanatics who equate closed source with all the evils of the world. If you can't even appreciate that there are legitimate reasons why people use closed source products instead of their OSS competitors, you are NEVER going to create a superior OSS product because you have absolutely no idea of what the POINT of the product actually IS. -
Re:well
MySQL: Because data corruption is no big deal.
Patently false!!! It just silently truncates data. That's not a bug, it's a feature!
-
Re:Wow!
Duh... I guess this dipshit (and everyone else here) does not comprehend the difference between a full text table index on the article bodies versus an actual "index" of topic titles, and the implication on search functionality.
I'm guessing this is the first time he has encountered the length of time it takes to create indices on text fields in a large db. You see, to get fast searches on huge amounts of text one must do a little work in advance.
Also I'd bet that the default offline wikipedia scripts define the table with indices, then imports the data, forcing the index to be rebuilt with every query (will take a painfully long time). I bet that a simple modification of the scripts to define the tables without indices, import the data then add the indices would speed it up considerably. (though index creation on large text databases will always take time no matter how you cut it)
A searchable zipped file of article titles? Whoopee fuckin doo.
RTFM assholes:
http://dev.mysql.com/doc/refman/4.1/en/indexes.htm l -
Re:Rock solid... Far from it unfortunately...
Uhm... http://dev.mysql.com/doc/refman/5.0/en/innodb-and
- mysql-replication.html
"MySQL replication works for InnoDB tables as it does for MyISAM tables. It is also possible to use replication in a way where the storage engine on the slave is not the same as the original storage engine on the master. For example, you can replicate modifications to an InnoDB table on the master to a MyISAM table on the slave." -
Re:Yay!
-
Re:Interesting trend
This is the next step on from creating a second-class citizen 'community' codebase.
MySQL.com have always tacked open source on as an afterthought.
Their contributor agreement is effectively
'thanks, your patch, copyright and patents belong to us now, but here's a free t-shirt for your trouble'.
http://forge.mysql.com/contribute/cla.php
I hope this makes some of the bazillion webapps
that couldn't be bothered to support other databases realise all their eggs are in a pretty ropey basket right now. -
Rock solid... Far from it unfortunately...
MySQL versions 5.0.38 to 5.0.45 have had such major bugs that they have rendered themselves useless for a huge range of applications. Applications that use dates, or ones that expect the database to *NOT* insert random NULL values in a group by query.
I mean, even the most basic test suite would have easily caught these.
Here are just a few of the major ones:
Bug #28336
Bug #28936 -
Rock solid... Far from it unfortunately...
MySQL versions 5.0.38 to 5.0.45 have had such major bugs that they have rendered themselves useless for a huge range of applications. Applications that use dates, or ones that expect the database to *NOT* insert random NULL values in a group by query.
I mean, even the most basic test suite would have easily caught these.
Here are just a few of the major ones:
Bug #28336
Bug #28936