 I'd like to pass it on to a MySQL team for our first session, which is MySQL Overview for Oracle DBS. Thank you very much. Okay. Thank you, Machere. So my name is Ryan from the MySQL solution engineering team for Asia-Pacific based out of Malaysia. So it's just a short flight, two hours to Bangkok. So with me today is Ivan, you know, my colleague from Hong Kong. So two of us will deliver for session. This session is very introductory, right? It's targeted to people who have used database before. However, this is not a session to compare one to one, right? What is the equivalent command in Oracle to MySQL? And it doesn't also tell you when or why you should use Oracle or MySQL, okay? Any problem with that? But do ask me questions. Since we are small cloud, if you face any problems using some concept that you're not very clear, we are here to help clear the doubts, okay? So this talk is about major differences between Oracle and MySQL. And also to tell you one of the MySQL architecture for enterprise deployment, right? I think we shall talk about MySQL, how scalable it is, right? Do you use Facebook? Everybody use Facebook, right? So Facebook uses MySQL, right? So when Mark Zuckerberg started Facebook, actually he used PHP, right, PHP and MySQL. I recently just re-watched the movie Social Network and I think in the middle of the scene, Mark Zuckerberg was saying, oh, I need more server for MySQL and PHP, right? So it's an open secret. Before I go on, any question that you might have before coming to this section, what do you want to find out? Just to learn. You should be teaching. So I think if you visited our booth downstairs, we have a banner saying the top five for the website runs on MySQL. So these are some of the bigger, you know, businesses in Unicorn that using MySQL, right? You can see Twitter, Facebook, YouTube, and PayPal that using MySQL. Sorry I didn't mean for you to get started. We ask everybody questions. Any databases that you are familiar with? What database are you currently using or you just come here to learn? Just asking what is your experience of using database? Sorry? All about verification. All right, so I think, yeah, this is a session to talk about, you know, the basic of MySQL and more example, right, how people are using MySQL. Now Oracle, so I'm going to ask you because you said you would use Oracle. What is the difference between database and schema? Relational and non-relational? Not exactly, right? What I know is, you know, database, it's a structure of storing data. And then schema usually is related to user. So you can create a database and when you log on to a database using a user schema, all the database are table objects owned by that schema. So schema, it's similar to user. However, in MySQL, we don't have that concept, right? So database is similar to schema. So there's no concept of schema, you know, user owning the table. Got it? So database and schema is not exactly as any difference in MySQL, right? So they are similar. So in MySQL, we don't actually have a user that owns a database, all right? Yeah. Yeah, it's similar. Okay, so question is, how do we clarify a table is owned by a user? So, yeah, as we said, we don't really have that concept in MySQL. So the way we do it is we grant privileges to a user. So whether it has a right to select, right to delete and update, okay? So it's not owned by anybody. So when we delete that user, that database is still, you know, accessible to other, right? We also have a concept of role that we can assign to user, okay? So how do you connect to a database, right? In Oracle, we use SQL plus and then you can connect to the database. In MySQL, we use a MySQL client, right, command line, right? DBA like to use command line. So we use MySQL client to connect to the database. So I can just quickly show you, oh, it's very small. So the default DBA user is root, but this root is not the same as your OS root, but the same name, but it's the DBA user. Okay, so minus P is the plot number. Usually this is a default that we use it to connect to the database. And then minus small P is the password, okay? So you log on to ready to the database, okay? Now, so we want to look at how many databases you have. So we have the two system catalog database called the information schema that contain the data describing the database, the metadata, we call it. And then we have the performance schema that keeps track of the different performance statistics of the table, how many rows of data table in the database. And then these are the user database, okay? So I have Ryan and then WarX, MyDB. And MySQL is the system catalog. So that's how you use MySQL to connect to the database. So I explained this before, the database isn't really owned by anybody, right? We create user in the database, and then we grant the privileges to the user so that they can operate on a database, select, update, or delete from the database, all right? And for developers or people who just want to play around with MySQL database, there is a GUI tools that you can use to work with the database called MySQL Workbench, okay? So it's a GUI, you can download, it's point and click. It doesn't, yeah, it's very easy to use point and click. It doesn't require you to know all this command at this time, right? So use database, show database, and so on. So it gives you a quick start to learn the database. And for you currently using Microsoft SQL Server, if you want to try to see whether you can put some of the data into MySQL, the Workbench actually have database migration tools that you could use to test out, you know, how the data, how to work with data in MySQL. Okay, so you can export data and then migrate into MySQL. Okay, so this is a bit busy, but basically I just want to show you the difference architecture between Oracle and MySQL, all right? So we have the, so in MySQL we have the system global area, the memory, the buffer, and we also have the on this structure, how data organize on this, in this. And then we have a set of server process that work with data, right? Accepting connection, writing data in the memory, and making sure data gets flushed to this. And this is very similar to MySQL, so we also have a memory for us to cache data after, you know, we read it from the disk. So this is for fast access so that we don't have to go to the disk all the time because reading from this is very expensive. Okay, so we use memory to cache some of the data. And in the disk, we have the log file to record changes in the transaction log. I recorded redo log similar to Oracle. There's a redo log to keep transaction. In case database die, you know, we use this to roll back or roll forward that transaction that's either committed or non-committed to the disk so that we can bring consistency back to the database, okay? Okay, so at this point, you understand a little bit about MySQL. How do you install MySQL, right? So you can either download from our website. It's called www.mysql.com. Depending on the different system that you work on, whether it's Windows or Linux and a different package installation, you could use YUM install or RPM or APT, or you could do TA to extract, you know, the table from the download into a directory of your choice, okay? Usually, we recommend people to use the TA table format if you want to deploy for production use, a serious production enterprise deployment. A couple of reasons. Number one is that you have more control, flexibility of using TA because you can create your own directory. You can structure your file system according to your disk structure, okay? Whereas the rest of the method, the structure of the data, the files, the file system is pretty much fixed, right? There's a default area that we keep the configuration file and also default for us to restore the log files. So if you want more flexibility, TA is the way to go, all right? Okay, so everybody knows MySQL is open source, Oracle, we own the source code. So essentially, you could use it for free. We have a community edition, which you can download and then use it for your own project or for your company, whatever application, all right? We also have a commercial edition where you want to deploy for enterprise use, for company who want to have somebody to support them, right? In case they run into problems. So we have a commercial edition. If you want to consider more enterprise capabilities such as backup and so on, right? So these are the enterprise capabilities that we put together in the enterprise version. So this is a subscription-based type of license where you subscribe yearly and then you're entitled for bug fixes, new features that you can download from our web to continue improve the database capabilities. However, you are free to use the database if you don't need that kind of features. I'm going to go through just a few so that you have a view of what's not in the community edition, which you can consider in the future if there's a need, all right? So we have high availability features, security encryption, and also monitoring tools for you to monitor the database how well it performs. And important is the support that we provide to you in case you run into a serious problem where data is corrupted, database crash, that you have somebody to guide you through how to recover from those serious issues. So just to summarize, these are the key capabilities of part of our commercial license. So we have authentication, we have encryption. We also have a firewall that protects your database. And we have audit to audit what are the activities based on user going to a database. And we have monitoring tools for you to monitor your mask girls. And very important is this backup tools, which allows you to not only quickly execute the backup quickly, but also to restore reliably in case there's a corruption data in the database. Last but not least is the encryptions of your data. So in the community version, data is kept as a text in the file system, in the disk. So if you keep sensitive data, it's good to have this capability to encrypt the data so that even though the data that the file is stolen from the system, people can't look into your data because it's all encrypted. To them, it's just garbage because you don't have the key to decrypt it to make sense of the data. So if you work with MySQL, which eventually you're going into designing high availability solution for MySQL, there are a couple of capabilities that you will use. One is a replication that you can make a copy of your data and then store it somewhere in another server as backup or for scale out kind of purpose. For example, if you have a main site having, say, 1,000 users, and you can have another server have a separate copy of your servers to serve other set of user. So if you have reporting requirements, you can have a replicated database for reporting purposes. So usually people use that for that scale out availability requirement. OK, so Ivan's going to talk a bit more on this cluster solution that we have. So I'm not going to go into more detail, but essentially what I want to tell you is that in the cluster environment, we have three redundant MySQL server that form a cluster. And then we have a router to route application to the active primary server using whichever connector that tied to your application. And we have a MySQL shell to manage and configure your clusters. And we have a MySQL Enterprise monitor to monitor the health of your cluster. OK, so backup is very important. In the community edition, there's a MySQL DOM utilities, which allows you to do a database export. It's not really an enterprise-grade backup tools. Essentially, it's just dumping out raw data from your database into a file which you can recreate later on if you want to restore your database. So for enterprise use, if you are familiar with Oracle, there's an RMAN that does that for you. So it backup the database files. So you can see a benchmark that we did is if you use MySQL DOM on a 37.3 gig database, it will take you four hours just to extract the data into a file. And whereas you use enterprise backup, it takes you a couple of minutes. And that's not the most important of all. The most important of all is the time you take to restore the database. Because when the database is corrupted and everybody is screaming for data in your production server, you want to make sure that your restore work very, very reliably and fast so that you can bring the database online quickly, not using the MySQL DOM 18 hours. So the other is transparent data encryption. We call it transparent data encryption. It doesn't require your application to do anything to encrypt the data because the data is encrypted automatically by MySQL. And when you select or read data from MySQL, that data will be decrypted before sending to you. So you don't have to do anything in your application, PHP or JavaScript to be able to take advantage of these features. Firewall is very important. Nowadays, we have a lot of hacking activities and SQL injection is one of the popular ones. So if you have a firewall, you can block those SQL injection kind of attempt to try to steal your data. All of it you can enable to record activities of user accessing your database. So to summarize, just to recap, is that MySQL is very popular. So it's very easy for you to get started, download, install. And not only that, MySQL is very scalable to web scale or to mobile application or any type of languages that you use. And with our Enterprise Edition, you can deploy reliably for Enterprise. So that's all I want to talk about as an introductory for you. Any question that you have? Who has any questions? Yeah, question. For the Enterprise version, it can have the fast query more than the commercial version. Because if I use the web app for the commercial, it has quite slow for the query database to show another data from the database to the website. It has the fast query, all the same. Yes? And Enterprise, yes? So your question is, does it compare with, I mean, the commodity versions compare with the commercial editions regarding the performance? Your question? OK, so performance 101 is you know the performance where the bottleneck is, then you can fix. And if you don't know, then it's just really dark and then you cannot fix. So to understand that correctly, first, the server, we have the monitor that you can dive in and that you can show what is happening and then fix regarding the SQL statement and as well as some long pluses. So it will tell you. So in terms of performance, one is actually people get involved and the system can notify where the trap and the performance problem is. And the second thing is, like the backup performance, which the commercial editions can offer a much better way of doing things. So I hope this actually gives you the idea so the commercial editions can build a better performance system. And on the other hand, developers worry about the developments of the projects on functionality, functionality. Whereas when a big corporations company, so the concern is not purely the so-called development and also functionality is how to apply, how to work with the so-called data. So they need the servers to be always up. They need the data to be always protected. They need the data to be managed and monitored correctly. So commercially people look at this can be a lot more than just the developers. So that's why you can see why we need to build a community additions to promote everyone to create like the long and people can still develop a lot of things on my SQL. Why we have the framework, PHP framework, Java framework, Node.js framework, they all work with my SQL because it's freely developed and freely to use. But big corporations, they don't want to manage by hand manually. They can actually do it more by getting the features. That's why we provide, we offer the solutions for big corporations to ease the pain. So I hope I can give you the idea why there is community and why there is commercial addition in the world and people still look for us and then we can offer service. We can offer not just sometimes when people look at why pay and pay is just only to support for people. No, it is not about just the support and people. It's actually different binary for my SQL, different binary. It includes packages. It includes the backup which can be always online backup. I hope this can clarify some of the myth of people using my SQL. OK, well, thank you very much. Sorry, we are actually running out of time for this session. Actually, we're already 10 minutes late. We'll try to cap it at 10 minutes late. And we have some great, that was a great question and I'm sure other people have some more questions. So Ivan and Ryan will be around during the break. So after this, you're most welcome to drop by the MySQL booth and ask any questions that you want.