79
www.brianhitchcock.net MySQL Would You Like Some Transactions With That Table?

My sql would you like transactions

Embed Size (px)

DESCRIPTION

MySQL Would You Like Transactions http://www.ossez.com/forum.php?mod=viewthread&tid=26897&fromuid=426 (出处: OSSEZ)

Citation preview

Page 1: My sql would you like transactions

www.brianhitchcock.net

MySQL

Would You Like Some Transactions With That Table?

Page 2: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 2

Slides Are Available

Page 3: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 3

What Is MySQL?

Most popular open source RDBMS

Open source means 'free'

Really? No cost at all?

Widely used

Sabre – airline reservations

Google

LinkedIn

What does Oracle DBA need to know?

Many differences...

Page 4: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 4

Why Should I Care?

I'm an Oracle DBA

MySQL means nothing to me

It isn't a 'real' RDBMS

Why should I learn about MySQL?

MySQL is being used by real businesses

Can't hurt your employability

Many jobs expect DBA to know multiple RDBMS

Why not learn one that is widely used?

And it's free – you can download and install right now!

Page 5: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 5

Oracle DBA Perspective

What will we look at?

Installing

Start/stop

How database/tables stored

Backups

Transactions

Storage engines

Page 6: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 6

My Message

Compare MySQL to Oracle

Not to be critical of MySQL

Not to praise Oracle

Make Oracle DBAs aware

How much we assume about RDBMS

Because Oracle does things a certain way

MySQL is very different

Assuming it is like Oracle can cause serious problems

Does your business understand the differences?

The cost of being 'free'?

Page 7: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 7

MySQL Versions

MySQL Enterprise

Have to buy support

MySQL Community Edition

The 'free' version

MySQL Community Edition Preview Release

Available for download

Ready for prime time?

Oracle doesn't offer 12g for trial download...

Page 8: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 8

MySQL Versions

Page 9: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 9

MySQL – Where Did It Come From?

Used to store web site logs

Transactions

What's that?

If we lose some records

So what?

Supported by an individual

Do your own thing

Recovery

Not to worry, plenty more web logs every day

Page 10: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 10

Some Differences – MySQL/Oracle Oracle

Database

Schema

a group of database objects

Database user

Maps to a database schema

MySQL

Server

Databases

Group of database objects

Users don't map to database

Page 11: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 11

Some Differences – MySQL/Oracle

Storage engines

Transaction support

Performance

Hot backup

Binary logging and recovery

Table locking

Corruption

Misc.

Page 12: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 12

Storage Engines

MySQL gives you a choice

Oracle, all transactional all the time (OATATT)

MySQL storage engines

MyISAM (IBM, Indexed Sequential Access Method)

Very fast read

InnoDB

Transactional, like Oracle

Separate software, owned by Oracle

Many others

See next chart

Page 13: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 13

Storage Engines

Page 14: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 14

InnoDB Storage Engine

Imagine mixing

MyISAM, InnoDB tables in a statement

What does 'transactional' mean?

What does “recovery” mean?

Page 15: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 15

CSV Storage Engine

CSV storage engine

Stores data in text files

Using comma-separated format

Page 16: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 16

Blackhole Storage Engine

My favorite

This is where we store all the data relating to the Raiders and their 'Commitment to Excellence'

Page 17: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 17

Yeah, But...

No problem

I'll just make all the tables InnoDB

Cool, but

MySQL catalog (system?) tables are MyISAM

Can't change them

Table storage engine can be changed at any time

Privileged users

No one should do this, but...stuff happens

Create table syntax

Supports overriding default storage engine

Page 18: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 18

Transaction Support

MyISAM

Default table type

Table type of system databases

Does not support transactions

Example

Writing to MyISAM tables and server crashes

Who know what was and wasn't written to tables

No recovery

Page 19: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 19

Performance

Many large MySQL servers in use

Performance must be good

or good enough for 'free'

Optimizer

Different storage engines

How to optimize statement that has

MyISAM tables

InnoDB tables

Does it support all storage engines you are using?

Page 20: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 20

Hot Backup MySQL does not have this

Backup option #1

Shutdown server, copy all files, startup server

Backup option #2

Lock all tables

Dump all data to a dump file

Dump file is set of SQL to recreate database

Very slow to recover

Backup option #3

Buy hot backup software product

Not free

Page 21: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 21

Binary Logging and Recovery

MySQL

Default, no logging

You can configure binary logging

Three formats

Statement-based

Row-based

Mixed

Binary log filenames have format

binlog.000001, binlog.000002, etc.

You must apply them in correct order

Page 22: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 22

MySQL Binary Logs

MySQL does not have any way of knowing when replaying the binary logs which statements need to be executed and which are already committed.

Oracle DBA doesn't worry about this

Oracle checks and tells you which archived redo log is needed next

Oracle won't allow archived redo logs to be applied out of order

Page 23: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 23

Binary Logging Formats

Page 24: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 24

Binary Log Issues

Page 25: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 25

Table Locking

MyISAM storage engine

Does not support row level locking

Table locks

Performance?

InnoDB storage engine

Supports row level locking

Page 26: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 26

Corruption

Oracle

I have rarely seen any cases

But all tables support transactions

MySQL

What does it mean to rollback

When different storage engines involved

Some support transactions, some don't

Some tables will be rolled back

Others won't

Is this corruption?

Page 27: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 27

MySQL Corruption Issues

Good read

Discusses corruption issues in MySQL engines

I'm not saying this happens often

But you need to be aware of these issues

Another difference from Oracle

Different storage engines, different corruption mechanisms

http://www.mysqlperformanceblog.com/2006/07/30/mysql-crash-recovery/

Page 28: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 28

MySQL Issues

Misc

Referential Integrity

Some storage engines support

Triggers

Row-level, not statement-level

Directload

Not supported

Parallel Query

Not supported

Page 29: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 29

MySQL Issues

White Paper

Compares MySQL to PostgreSQL

PostgreSQL, another open source RDBMS

More like Oracle than MySQL

Discusses issues with MySQL

I'm not endorsing PostgreSQL

But the whitepaper is very good

Google

PostgreSQL vs. MySQL A Comparison of Enterprise Suitability

Page 30: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 30

MySQL Table Storage

MyISAM

Each table has three files

<filename>.frm – Data dictonary information

<filename>.MYD – table data

<filename>.MYI – table indexes

InnoDB

Data and indexes in a tablespaces

Made up of one or more datafiles

Sound familiar?

Page 31: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 31

Documentation Online

Page 32: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 32

Documentation Online

Page 33: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 33

Documentation Online

Page 34: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 34

Talk Is Cheap

A little less conversation

A little more action

Download and install MySQL to your laptop now

Slides show the steps

Windows

You will have a fully functional MySQL server

Start learning right now

Page 35: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 35

Install MySQL – Windows

Windows Vista

6.0 Service Pack 1

Screenshots shown

Windows XP

Professional Version 5.1

Same steps

Very minor differences in what you see

Page 36: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 36

Downloads?

Page 37: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 37

Downloads?

Page 38: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 38

Enterprise Version

Page 39: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 39

Community Version

Page 40: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 40

Windows Downloads

Page 41: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 41

Windows Installation

Page 42: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 42

Windows Installation

Page 43: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 43

Windows Installation

Page 44: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 44

Windows Installation

Page 45: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 45

Windows Installation

Page 46: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 46

Windows Installation

Page 47: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 47

Windows Installation

Page 48: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 48

Windows Installation

Page 49: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 49

Windows Installation

Page 50: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 50

Windows Installation

Uncheck

Page 51: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 51

Windows Installation

Page 52: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 52

Windows Installation

Check

Page 53: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 53

Windows Installation

Page 54: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 54

Windows Installation

mysql

Page 55: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 55

Windows Installation

Page 56: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 56

Accessing MySQL Windows

Click Start

Programs

MySQL

MySQL Server 5.1

MySQL Command Line Client

Right-click

Send to

Desktop (Create Shortcut)

Double-click desktop icon

MySQL Command Line Client

Page 57: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 57

Accessing MySQL Windows

mysql

Shortcut created at installation

Page 58: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 58

mysql client utility

Similar to SQL*Plus

Page 59: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 59

Now What?

Stop, start MySQL server

What databases are available

show databases;

Set default database

use <dbname>

What tables are in the database

show tables;

Page 60: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 60

Windows Vista

Stop/Start

Services

Start

Settings

Control Panel

System and Maintenance

Administrative Tools

Services

Scroll down to MySQL, highlight

Upper left, options for Stop, Pause, Restart

If MySQL is down, option to Start

Page 61: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 61

Windows XP Stop/Start

Command line

net stop mysql, net start mysql

Services

Start

Control Panel

Administrative Tools

Services

Services window

Scroll down to MySQL, highlight

Upper left, options for Stop, Pause, Restart

If MySQL is down, option to Start

Page 62: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 62

Page 63: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 63

Page 64: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 64

System Databases

INFORMATION_SCHEMA

Catalog database

MYSQL database

User and privilege information

TEST

For you to play in...

These databases are created at installation

Page 65: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 65

MySQL Server Configuration Controlled by 'option' file(s)

Similar to Oracle pfile or spfile

SHOW VARIABLES

See current values

Standard location(s)

Search order

One of the most common problems

Persons don't know where these files are

Make changes that don't take affect

Can't find the file or files

Page 66: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 66

Option File(s) MySQL searches multiple locations

Uses most recent value of each parameter

How to know all files being scanned by MySQL?

mysql –help

Note: dash dash help

Page 67: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 67

Option File

Page 68: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 68

Option File

Page 69: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 69

Option File

Page 70: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 70

Option File

Page 71: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 71

Option File

Page 72: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 72

MySQL Filesystem Layout

From option file (my.ini)

basedir

Where software is stored

datadir

Where table data is stored

Page 73: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 73

MySQL basedir

Page 74: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 74

MySQL basedir/bin

Page 75: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 75

MySQL datadir

Page 76: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 76

MySQL Log Files

General Query Log

All client requests

Binary Log

Statements that modify data

Slow Query Log

Statements that take longer than 10 seconds

Error Log

Server messages

Page 77: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 77

MySQL Log Files

Find log file locations

Page 78: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 78

Summary

MySQL is 'free'

May need other products to make it work for you

Hot backup for example

MySQL is widely used

MySQL is very different from Oracle

DBA tasks and issues will be different

MySQL is not better or worse than Oracle

Just very different

Page 79: My sql would you like transactions

www.brianhitchcock.net Oct 29, 2009 Page 79

The End?

You now have a MySQL server installed

No excuses

Learn it, live it, love it

Update your resume

Next?

Multiple MySQL servers on same machine

Replication

etc.