Italia: +39 06 99268193
USA Subscription Renewals: +1-866-830-4410
EMEA: +353 1 6919191
Scopri nuovi rilasci, articoli tecnici, eventi ed altro ancora.
Michael "Monty" Widenius (Co-Founder/CTO, MySQL AB), Zak Greant (Community Advocate, MySQL AB)
This session, taught by MySQL lead developer Monty Widenius, offers a
50-minute guided tour of the MySQL source code. During the tour, Monty will
show attendees how some of the major parts of MySQL are implemented.
The important sections of code for each sub-system that is covered will
be show and discussed.
Attendees of this session will gain a clearer understanding of how MySQL
behaves and may be able to modify MySQL to suit their own development needs
better.
This session is meant for advanced users who have a solid working knowledge
of both C++ (or C) and database systems.
Tim Bunce (CTO, Data-Plan Services)
Who Should Attend: Intermediate to advanced Perl programmers with an understanding of the DBI and a desire to know more.
Learn how the DBI works and how to get the best out of it, including how to maximize speed, safety, reliability and portability.
Outline:
Stacey Quandt (Industry Analyst, Linux and Open Source, Giga Information Group)
This presentation will apply Giga's TCO methodology known as Total Economic Impact to case studies of MySQL deployment, in order to delve into the costs, benefits, flexibility and risk of deploying an Open Source database.
Tom Basil (Director of Technical Support, MySQL AB)
Discover how an Open Source development team of 25+ software developers scattered across 15+ countries pull together to offer commercial grade tech support. Learn how the Open Source philosophy and MySQL AB's unique corporate personality blend together to provide excellence in technical support.
The session will also discuss how having a more integrated support and development team helps improve the quality of both efforts.
Sanjeev Binaykia (CEO, Sygnet)
Many websites use PHP along with MySQL to deliver content online. Running these sites offline on a Windows machine is not possible unless we
This session shows how we can use Apache, PHP and MySQL to overcome this problem. This allows us to run dynamic sites directly from a CD on a Windows machine, without the need to install anything or write to the Windows registry.
The session will demonstrate how a simple batch file detects the Windows OS version, shuts down any running web servers, starts the Apache server and the MySQL daemon, opens the Internet Explorer browser and displays the index file of the website. Users get the same experience as the website, with keyword searches, database queries and formatted search results.
The session also identifies the minimum assumptions we need to make about the host computer's environment.
The ability to run a MySQL-driven website directly from a CD makes a site developer's life easier - simply copy the website's php files and mysql tables, and a CD version of the site can be ready in as much time as it takes to cut it. The small footprint of Apache and MySQL ensures that almost all the space on the CD is free for use.
We will also briefly discuss how this technique can be used to combine offline and online content. Heavy content can be encrypted and stored on the CD, and a net connection used to update key data fields such as price, availability or decryption code.
The session will be of interest to developers who need to build MySQL-driven sites for offline use, as well as end-users who would like to port their sites without having to commission a separate CD version.
The major points discussed are:
Kari Honkanen (CTO, Emic Networks)
Explore the technologies and benefits of clustering MySQL databases for
high-availability and reliability, using standard inexpensive off-the-shelf
"Lintel" hardware.
Venu Anuganti (Developer, MySQL AB)
"Getting the Most Out of MySQL Connector/ODBC" is one of a series of "guru" sessions given by MySQL core developers. Each session features one of the core areas of MySQL as described by one of its main implementers.
This guru session, led by MySQL Developer Venu Anuganti, provides an in-depth overview of of how to best use MySQL Connector/ODBC.
During this session, Venu will show attendees how to install MySQL Connector/ODBC on various platforms, demonstrate supported features as well as leading edge features that will bedelivered in the near future versions. Venu will also show attendees how to write interoperable ODBC code to be used with various databases.
The major topics of the session are:
This session is targeted to users who develop applications with ODBC.
David Axmark (Co-Founder, MySQL AB), Michael "Monty" Widenius (Co-Founder/CTO, MySQL AB)
David and Monty, old friends and MySQL co-founders, talk about how the MySQL
project came into existence and why they chose to make it Free / Open Source
Software. Learn how the project has grown from its roots as a part-time
two-man venture into one of Open Source's success stories and hear about the
milestones they have encountered along the way.
Heikki Tuuri (Founder/Lead Developer, Innobase Oy)
We will discuss the InnoDB features that users have found the most useful. We also sketch out the future direction of InnoDB development.
Transactions, row level locking, and multi-versioning are the most prominent feature of InnoDB. We will describe the implementation of next-key locking and multi-versioning, and study how you can use lower transaction isolation levels to reduce locking and the probability of transaction deadlocks. A possible future path is to modify the MySQL binlogging so that we can avoid using next-key locks in INSERT INTO ... SELECT ... . In the short term, transaction savepoints will be implemented.
Foreign keys are an integrity feature of InnoDB which has become very popular. We describe how they are implemented internally.
In the future, InnoDB may optionally have multiple tablespaces or a file-per-table storage model. This will allow one to use InnoDB Hot Backup to backup or restore only selected tables or databases, and will - with a special conversion tool - allow developers to move tables in their binary form from an installation to another. Another long term goal is porting fulltext indexes on InnoDB tables.
Gary Carleton (Software Products Division, Intel Corporation)
The session will introduce the Intel software development tools and how
developers can benefit from using them. We will discuss the Intel C++
compiler for Microsoft Windows and Linux, the Intel(r) VTune(TM)
Performance Analyzer, the Intel Performance Libraries and the Intel(r)
Thread Checker for Windows. Software developers who would like to
enable their applications for utilizing the latest Intel hardware
technologies and platforms will receive comprehensive information on the
Intel software tools' range and functionality. This session will also
present experiences using the Intel tools in porting and optimizing
MySQL for the Intel Itanium, Xeon and Pentium 4 processors. These
results are based on long-term collaboration projects between MySQL AB
and Intel to optimize MySQL database for Intel-processor based servers.
Dr. David Harper (Wellcome Trust Sanger Institute), Dr. Ed Zuiderwijk (Wellcome Trust Sanger Institute)
The Wellcome Trust Sanger Institute is one of the world's leading genome
sequencing centres. In addition to its well-known work on the Human
Genome Project, it has a strong track record in decoding the DNA of
many organisms responsible for deadly human diseases: malaria, leprosy,
typhoid fever, plague and sleeping sickness, to name a few.
This sequencing effort involves the storage and manipulation of millions of individual snippets of DNA called 'reads' which are stored as strings of text inside the Sanger Institute's computer systems. These 'reads' are assembled into longer sequences called 'contigs', and finally into the complete genome sequence. Some of this assembly is done by software, but much is also done by hand by teams of scientists skilled in techniques of DNA manipulation.
The Pathogen Informatics team is developing a MySQL-based data handling system named 'Arcturus' which will simplify the task of managing the millions of reads and thousands of contigs created by the Pathogen Sequencing Group.
The Arcturus system employs multiple MySQL instances running on a pair of Compaq Tru64 clusters. Data integrity and backup is provided by master/slave replication between instances on different clusters. The databases are required on a 24/7 basis, so we run all instances as "highly-available applications" using Compaq's Cluster Application Availability (CAA) framework.
In this talk, we shall outline the architecture of the Arcturus system and describe our use of replication and CAA to ensure maximum reliability, availability and integrity.
John David Duncan (GreatSchools.net)
This technical session will present a set of techniques for managing MySQL servers in mission-critical applications with very low downtime.
It will provide systems administrators, DBAs, and technical managers with the overview of a high-availability, high-performance architecture for MySQL systems. Some components of such an architecture include replication, load balancing, server failover, and monitoring. John will outline a general solution for acheiving high availability employing two (or possibly four) MySQL servers. He will also discuss some of the various options available for implementing this architecture, which include dedicated load balancing hardware and Open Source software such as Linux Virtual Server and Wackamole.
Three of the most important concepts in this solution are the management of virtual IP addresses, the use of DNS, and the deployment MySQL replication. The session will provide specific details about all three areas, independent of the various load balancing and failover choices.
The session will conclude with a display of network monitoring graphs, generated by MRTG, displaying almost every aspect of a set of MySQL servers in use at GreatSchools.Net which service millions of queries per day. Scripts and MRTG configurations for generating the graphs will also be provided.
Philip Antoniades (Sr. Developer / Managing Partner, Bangstate, Inc.)
A strategic overview of when, how and why to migrate an existing database from Oracle, Sybase or MS SQL, to MySQL.
Matt Wagner (Director of Software Development, MySQL AB)
A high-level report on the direction, features and status of MySQL 5.
Mark Matthews (Developer, MySQL AB)
A brief timeline of MySQL Connector/J
The JDBC API in a nutshell
Leveraging Open Source Java
Connector/J Performance Tips
Code Level Description (10 - 15 minutes)
Laura Thomson (Author, RMIT University), Luke Welling (Author, RMIT University)
Cram for the MySQL Certification exam with renowned MySQL/PHP authors Laura Thomson and Luke Welling.
In this presentation, MySQL CEO Marten Mickos discusses the logic and logistics of MySQL dual-licensing.
The MySQL dual-licensing allows the MySQL software to be developed in a Free/Open Source Software fashion, while allowing its users to choose between using the software under a modern Free / Open Source Software model or a more traditional commercial model.
Dual-licensing combines the best of collaborative community-based software development and commercially viable and warranted product licensing.
Guilhem Bichot (Developer, MySQL AB)
"MySQL Replication Development" is one of a series of "guru" sessions given by MySQL core developers. Each session features one of the core areas of MySQL as described by one of its main implementers.
This session, led by MySQL Developer Guilhem Bichot, provides an expert overview of database replication in MySQL. Database replication enables users to make a database on one machine a permanently up-to-date copy of another database on another machine, thus achieving high availability (through redundancy) and speed (through load balancing).
During the session, Guilhem will show to attendees how replication is implemented in MySQL, and (more briefly) teach them how to setup and manage it. The future features will also be discussed.
The major topics of the session are:
Session is targeted to database administrators, and also to project leaders who want to know if MySQL replication could suit their need.
Per-Erik Martin (Developer, MySQL AB)
This guru session, led by MySQL developer Per-Erik "pem" Martin, will provide a first glimpse of the Stored Procedures implementation in MySQL 5.0.
Pem will describe what is (and will be) implemented of the SQL-99 Persistent Stored Modules (PSM), and how it fits into the existing MySQL architecture.
The session is targeted at users and developers with an interest in Stored Procedures.
Note: This session will cover work in progress, so the details of the presentation may be subject to changes.
Rasmus Lerdorf (Inventor of PHP, Yahoo!)
Peter Gulutzan (Author/SQL Expert, MySQL AB)
MySQL AB has been devoting a major part of its recent development efforts to accomplishing compliance with the official SQL Standard. MySQL and the SQL Standards: A Detailed Analysis and Progress Report is a session about these efforts, given by MySQL's new SQL Standard expert, Peter Gulutzan.
Peter will talk about MySQL's efforts towards SQL Standard compliance, MySQL's progress, and the remaining issues. Peter will start his talk by explaining what the ANSI/ISO Standard is, how it's made, what the versions are, why it's important, and what "SQL Standard Compliance" really means.
During the session, Peter will list every one of the items which make MySQL version 4.0 non-compliant with the current (SQL-92 or SQL-99) standards. As he goes through each item, he will explain what MySQL is doing about it, or plans to do about it. MySQL believes that full disclosure of all issues is mandatory; however, the speed of progress toward "Compliance" will astonish many.
The major topics of the session are:
This session is targeted to users and developers who are interested in standard SQL.
Sandro Zic (Partner/Founder, ZZ/OSS)
The speaker, Sandro Zic, sheds a light on the role that MySQL database servers play in the world of Web Services. Attendees will gain insight into best practices concerning the interplay of the middleware and backend tier to achieve cross-server data exchange.
A content network is a computer system where digital objects are decoupled from the physical nodes that carry them. Corresponding software frameworks allow for integration of text, image, videos, etc. from remote sources / legacy systems into another Web application.
Sandro will focus on CONESYS, the COntent NEtwork SYStem, an Open Source framework mainly implemented with PHP and MySQL. He will give a brief review of the CONESYS architecture to point out general aspects of handling distributed data in heterogenous networks.
In the course of the session, we will dissect which tasks are better left to middleware interfaces like SOAP and where MySQL offers an alternative or even better choice to transfer data. In this respect, we take a look at existing MySQL features like built in SSL and authentication mechanisms, replication features, as well as upcoming functionality like stored procedures. Furthermore, we will expound potential problems of storing and retrieving high volumes of aggregated data harvested from remote content providers - especially in the light of XML structured and annotated content.
To sum up the above, this is a list of major topics in this session:
This session is meant for experienced Web application programmers.
Sergei Golubchik (Developer, MySQL AB)
MySQL Fulltext Search dates back to 1998, when the first simple engine was written based on ISAM code. Since then it was ported to MyISAM, and significantly optimized. In addition to natural language search, boolean search module was written.
Now, Fulltext Search in MySQL has two major modes of operation - natural language search and boolean search. In boolean mode, the search for the given words is performed. This mode is easier to understand, the query specify which words the row MUST contain, and which words it MUST NOT contain. Standard boolean operators AND, OR, NOT, and parenthesis can be used to form a query expression of arbitrary complexity. Still, no matter how complex the query is each row either satisfies query expression - and does it absolutely - or not.
Things are much more complicated in the natural language search. It is supposed to find rows that are "relevant" (in the conventional meaning of the word) to the format-free, natural language query. There is nothing absolute anymore. Row can be only partially relevant, or partially irrelevant. There is no even any reasonable way to find this "relevance" besides asking what people think - and different people, of course, will have different opinions. Natural language search engine can do any magic it wants - drop some words from the query, add some new words to it, do not think words at all - to have this mystical "relevance" higher. There are several most popular mathematical models on which natural language search engines are built. MySQL Fulltext Search utilizes a variant of vector space model.
Internally, MySQL Fulltext Search is built on inverted indexes stored in one/two-level b-tree - special structure, that takes fast and disk-efficient access to leaves of b-tree, and adds a placeholders where statistics information, crucial for Fulltext Search optimization, can be stored. Unlike some other fulltext search engines, in MySQL Fulltext indexes are fully dynamic, words can be added and removed any time.
Developing of MySQL Fulltext Search is being done in two directions - adding new optimizations to boolean fulltext search, to make it faster (and natural language search will benefit from it too), and implementing recent ideas from the science of Information Retrieval in the natural language search engine, to achive better relevance ranking.
Jorge del Conde (Developer, MySQL AB)
This session, led by MySQL Developer Jorge del Conde provides an overview of MySQL Control Center. MySQLCC allows MySQL users graphically administrate a MySQL Server, and its data, with the ease of use only a GUI client can provide.
During the session, Jorge will teach attendees how to use the MySQL Control Center for MySQL administration and will discuss future development plans for the software.
The major topics of the session are:
Alexander "Bar" Barkov (Developer, MySQL AB)
National Character Sets and Unicode in MySQL 4.1 is one of a series of "guru" sessions given by MySQL core developers. Each session features one of the core areas of MySQL as described by one of its main implementers.
In this session, Alexander "Bar" Barkov (key implementer of the internationalization support in MySQL) will give an expert's overview of the new features that relate to multi-lingual data processing in MySQL 4.1.
Attendees will learn about national character sets and collation support in MySQL.
The feature set will be illustrated with many examples that will demonstrate how to apply the functionality on a per-server, per-connection, per-database, per-table, per-field and constant level.
There will also be discussions on how the MySQL implementation of these features compares to the guidelines set in the SQL 99 standard.
The major topics of the session are:
This session is meant for database administrators and developers who deal with multi-lingual data, as well as those who are interested in MySQL's new features.
Alexander "Bar" Barkov (Developer, MySQL AB)
Navigating the Spatial Data Support in MySQL 4.1 is one of a series of "guru" sessions given by MySQL core developers. Each session features one of the core areas of MySQL as described by one of its main implementers.
This guru Session, led by MySQL Developer Alexander "Bar" Barkov, provides an expert overview of the OpenGIS functionality introduced into MySQL 4.1. The OpenGIS features allow users to easily store, manipulate and analyze spatial data like points or contour maps within MySQL.
During the session, Bar will teach attendees how to create, populate, query and index tables that contain spatial data. The session will also touch on issues such as MySQL's compatibility with the OpenGIS standard and the spatial data features present in other databases.
The major topics of the session are:
Session is targeted to users and developers of location-enabled applications and Geographic Information System (GIS) applications.
Matt Wagner (Director of Software Development, MySQL AB)
MySQL's Director of Software Development gives a 50-minute tour of the new features introduced into MySQL 4.1.
Alejandro Oropeza Querejeta (Manager of IT, Undersecretary of Administrative Development and Simplification, Mexico)
This business-level session presents a case study on Normateca, a
web-based service for Mexican federal government departments that was
build using MySQL and other Open Source tools.
Normateca streamlines the processes of federal departments by allowing government users to easily research rules and regulations that apply to the operation of their departments.
Attendees will learn about the objectives, goals, design and implementation of the Normateca project. The session will focus on how MySQL and other Open Source tools were the critical factors behind Normateca's success.
The session will also be supported with usage statistics, relevant code samples and a live demonstration of the tool.
This session is especially for IT Government employees who are promoting the use of Open Source applications, as well as managers and developers in the private sector who are evaluating the suitability of Open Source applications for their organization's needs.
This session will provide a user case study outlining how Lufthansa Systems implemented MySQL for NetWare as the database of choice when building enterprise ready IS&T systems along with state of the art procurement system.
Using a combination of Apache, MySQL, PHP and Tomcat, all Open Source components, Lufthansa architected an integrated web based system capable of handling 212,000,000 browser hits in a forty day period.
Based on a combination of clustering, load-balancing which offers fail-over capabilities, working in tandem with the powerful authentication and single-sign-on capabilities of Novell i-chain; Lufthansa built a security system that provides industrial strength reliability and performance on the back-end.
Bruce Perens (Open Source Advocate)
In this business-level session, noted Open Source advocate, activist and developer
Bruce Perens will discuss why Open Source works for business, as well as where
it works and how the Open Source philosophy is consistent with making a profit.
Charlie Garry (Industry Analyst, The Meta Group)
Driving cost from the infrastructure continues to be a top priority for
virtually every IT organization (ITO) but cost cutting scenarios become
increasingly more difficult as the obvious fat is cut. At some point ITOs need
to consider how to increase the value of the infrastructure. The growing
acceptance of open source software to supplant costlier proprietary software
for well-defined, tasks addresses the cost cutting aspect for infrastructure
planners. What effect will open source databases have on the $12B enterprise
database market and what will traditional database vendors do to provide the
feature/function that drives the value side of the equation?
Jeremy Zawodny (Technical Lead, Yahoo!)
As the load on a MySQL server increases, its performance may degrade if it has not been properly tuned to handle the load. A default installation of MySQL performs well for many applications, but it generally will not perform efficiently under stress.
In this presentation we'll discuss many of the tunable parameters in MySQL's configuration file (my.cnf), how to read MySQL's performance counters, and various optimizations which can be used to improve the performance and efficiency of MySQL servers--often with dramatic results. We'll also examine MySQL's various table types as well as hardware solutions to performance problems.
Paul J. Dravis (Founder and President, The Dravis Group LLC), Amy Morrell (Web Developer/Senior Database Administrator, Science System Applications, Inc.), Jim Willis (Director of eGovernment, Rhode Island Office of the Secretary of State), Greg Thompson (National Center for Atmospheric Research), Rachael LaPorte Taylor (Senior Internet Technology Architect, FedStats)
Paul J. Dravis of the Dravis Group acts as moderator for a panel discussion on how Free / Open Source technology is being used in government.
The panel brings together four developers from different US government organizations, who are each using Free/Open tools as part of their IT infrastructure.
The following provides background on how the various participant's organizations use Free/Open Source Software.
Amy Morrell
The LBA project is a cooperative international scientific project designed to
study the interaction between the Amazon Forest and the regional and global
atmospheres. LBA-ECO is one of several international research components under
the Brazilian-led LBA Experiment and concentrates on the processes and effects
of land use change. At NASA/GSFC, the LBA-ECO web-site was developed to track
and disseminate Project information to the participating Science Team
Researchers, management, and the general public. The web-site resides on a
RedHat Linux workstation. Our cgi scripts are written in Perl, html,
javascript and query a MySQL database. This set-up works great. A little over
a year ago, we migrated from using a Compaq Tru64 UNIX workstation with an
Oracle database to this Linux/MySQL combination. It is now very efficient,
inexpensive, easy to maintain and reliable.
Rachael LaPorte Taylor
While many government agencies shun the use of Open Source, it is alive
and well at the Census Bureau. Open Source solutions enable developers
to focus on creating a responsive, innovative Web sites quickly, instead
of wrestling with technology. This talk will introduce several Open
Source projects using MySQL at Census.gov and FedStats.gov, used for
both data collection and dissemination. Lessons learned from these
projects can help advocates promote MySQL and Open Source for building a
solid technology infrastructure, allowing developers to concentrate on
the less tractable aspects of web site development.
Greg Thompson
An example of how MySQL is used on ADDS follows. Approximately
every hour at over 3000 airports worldwide, surface weather parameters
including temperature, humidity, wind, and visibility are measured
and coded into the worldwide standard format called "METAR." These
observations, collectively called METARs, are disseminated worldwide
via satellite then subsequently ingested and decoded on ADDS by a Perl
script that also populates a MySQL table. These data sets are nearly
instantaneously available for retrieval on the ADDS website by a
variety of methods including raw and plain-English text using PHP, icon-based
graphics in GIF format using Perl, and an interactive visualization using
a sophisticated Java applet (and servlet via Apache/Tomcat). Besides
METARs, numerous other text weather products are manipulated and stored
in a similar manner as well as meta-data associated with various gridded
computer numerical models.
Jim Willis
Rhode Island's Office of the Secretary of state has implemented
successful large-scale Open Source development projects around the
LAMP model. Building on these successes, we hope to facilitate
co-development of OSS solutions with other states by sharing code and
development responsibilities where possible.
Zak Greant (Community Advocate, MySQL AB)
Applications that collect, store and manage sensitive data are attractive targets for profit-motivated crackers and unethical employees.
In many environments, these applications are often secured by restricting access to the systems that they reside on. This strategy does not address the real problems surrounding the storage of sensitive data - the issue of protecting the data, rather than just restricting access to it. By focusing on protecting the data, instead of the application, we can reduce or eliminate the damage done when the application is compromised or access to it is abused.
This short tutorial will teach the attendee how to create applications that use combinations of cryptographic mechanisms, quantization and good old-fashioned misdirection to protect the security and privacy of their users.
Dirk Elmendorf (Chief Technology Evangelist, Rackspace)
This talk will focus on how to transform a fresh-from-CD Linux installation into the perfect LAMP server.
This includes:
Helvécio Borges (CEO, EAC-Brazil)
Many companies and software development firms are running and producing legacy code that stores its data in ISAM-type databases. These applications are typically stable, large, contain a lot of intelligence with millions of lines of code and thousands of loops to create reports and business rules.
Nevertheless, there is a very strong interest in porting these applications to graphical user interfaces and client-server, SQL database engines. The market currently provides solutions that require embedding SQL instructions in lieu of loops. This scheme requires training of software development personnel in the SQL language and rewriting of such loops with a potential for many bugs until a new level of maturity is reached.
Revamping a legacy system with a modern, powerful, low TCO database engine such as MySQL allows both a longer life cycle as well as a means to create modern, web-based interfaces accessing the same database thereby increasing the legacy system's value, usefulness and attractiveness with no need to retrain software development personnel.
MySQL provides a rich set of low level functions called 'handler'. These functions mimic a typical ISAM-type dababase where records are read one at a time, similar to a server side cursor but even more feature rich.
EAC-Brazil has been very succesful in converting SACI, its ERP application, from a proprietary, ISAM-type database to MySQL without having to modify a single line of code. The process has posed some difficulties most of them related to encapsulation and compatibility of the original and the 'handler' functions. The same scheme was used to create the MyCobol libray that links with the Cobol runtime executable and mimics its database access functions with MySQL. Performance issues were also considered and, if deemed necessary, could be solved through a buffering and cacheing engine.
Brian Aker (Technical Lead, OSDN)
Slashdot has used MySQL since its inception. As Slashdot has grown, MySQL has
grown along side us. This talk will go over Slashdot's history with MySQL,
discussing the successes and failures in our strategies with MySQL. Attention
will focus on how our architecture has evolved and how you can make use of our
knowledge for the development of your own sites.
Bradley Kuhn (Executive Director and Vice President, Free Software Foundation)
In this talk, I explain how the GNU General Public License (GPL), the
world's first copyleft Free Software license, has worked to ensure freedom
while creating a thriving user, developer and business community. I
explain the nuances of its freedom-defending terms and conditions for an
audience generally familiar with the computer software industry. I
address the typical business models that are built around a GPL'ed code
base, and discuss how these business models simultaneously generate profit
and serve the developer and user communities of the software.
Oleksandr "Sanja" Byelkin (Developer, MySQL AB)
Sub-queries in MySQL is one of a series of "guru" sessions given by MySQL core developers. Each session features one of the core areas of MySQL as described by one of its main implementers.
In this session, MySQL sub-query developer Oleksandr "Sanja" Byelkin, provides an expert overview of the new sub-query functionality in MySQL 4.1.
During the session, Sanja will discuss how sub-queries have been implemented in MySQL, describing the strengths and weakenesses of our implementation. The discussion will be supported by examples of sub-queries in use, along with comparisons between sub-queries and JOINs.
The session will also feature an overview of MySQL's plans to extend and improve our support for sub-queries.
The major topics of the session are:
Richard Green (VP Sun Developer Products)
Giuseppe Maxia
* What is it?
This session explains how to build a remote database comparison tool, i.e. how to compare data belonging to different servers. This subject covers problems related to the administration of distributed databases, where d= ata is physically stored in different locations. In such cases, traditional DBMS engines cannot perform operations on remote tables the same way they do to local ones. For example, they can't compare the contents of two tables with one single query. There are several methods to bypass this limitation, but the brute force approaches are often impracticable, due to resources boundaries. Some alternative solutions reduce the resources involved and allow remote comparison without copying all data from one location to another.
* Who should attend?Programming experience is necessary to attend. The examples are given in Perl, but background in other languages such as C, PHP, or Java are enough to understand the case study. The algorithms involved are explained in abstract and practical terms, so that attendees will be able to implement them in any language.
* What will they learn?Attendees will learn how to assess the differences in structure between two databases, and how to query two huge tables across a network and find their differences without passing all their contents from one site to another. They will also learn the basics of brute-force comparison, in order to appreciate the efficiency of the methods offered.
* How will it happen?During the presentation, Giuseppe will illustrate a practical scenario where comparing databases becomes necessary, and the side effects of using a d= irect, naive approach. Then he will show how to compare distant databases by structure and contents, presenting two methods and explaining their implementation step-by-step.
This session explains some practical methods to compare remote databases, thus touching some basics of distributed databases. While these problems are not general, they have a common basis. Managing distant data is a known issue, which has given more than one headache to database professionals. These methods can ease the burden of dealing with large amounts of data distributed among several locations. Especially administrators of data warehouses and mirror databases can gain valuable knowledge by attending this session.
* Who's the speaker?The speaker is a seasoned database professional who is sharing his experience on this difficult matter.
Michael "Monty" Widenius (Co-Founder/CTO, MySQL AB), Igor Babaev (Developer, MySQL AB)
Introduction
Why SQL can't do without optimization. What kind of optimizations
are usually applied and what of them are relevant to MySQL.
Query Optimization Process in MySQL
Main phases of a query execution. Optimize on demand -
the characteristic feature of the MySQL optimizer.
The optimizer basics: structures and methods
What the execution plan is, its representation in MySQL. The
cost-based optimization. The notion of the best execution
plan. How it's searched for. Explain operator.
The main stages of the optimization process
Query transformations. Partial evaluation of sub-expressions.
Range analysis. Optimization for joins. Optimization for queries
with 'group by' and 'order by' clauses. Optimization for
sub-queries.
Analysis of the current state
The limits of the current optimization. Where it works.
What kind of queries are not optimized. Shortterm plans.
Comparison with optimization performed by other database
servers.
Venu Anuganti (Developer, MySQL AB)
"Enhanced Binary Protocol in MySQL 4.1" is one of a series of "guru" sessions given by MySQL core developers. Each session features one of the core areas of MySQL as described by one of its main implementers.
This session, led by MySQL developer Venu Anuganti, walks attendees through the new binary protocol for MySQL 4.1. This protocol provides many benefits, such as compression of data between the client and server, and prepared statements.
During the session, Venu will demonstrate how to use how to use the features of the new protocol to maximize the performance of applications.
The major topics of the session are:
This session is targeted to users who develop applications with the MySQL C API. It is also appropriate for MySQL interface developers who want to integrate directly with the server using the new protocol.
Peter Zaitsev (Developer, MySQL AB)
This is 50 min session, lead by MySQL Benchmark Project
Coordinator Peter Zaitsev, is dedicated to one of the most challenging areas in database
development: achieving top DBMS performance and scalability while supporting
excellent product stability. This task requires the shared effort of
database engine developers, database administrators and client software
developers to succeed.
The session will cover the goals of benchmark project, the structure of the current MySQL benchmark and test suites, and the project's current achievements and future plans.
Attendees will also learn how to use benchmarking & testing tools for performance tuning and stability testing, and how to develop their own benchmarks.
This session does not rely on deep technical knowledge and is accessible to all levels of developer.
Hartmut Holzgraefe (PHP Development Team)
MySQL 4.1 does not only introduce the long-awaited sub-query feature, it also comes with a revised and improved C API that leads to vastly improved communication performance between MySQL clients and servers.
The new PHP mysqli extension (note the added 'i' for 'Interface') that will be part of PHP 5 (to be released later this year) now provides MySQL database access in both object-oriented and classic procedural style using the new MySQL C API and the improved object support in Zend Engine 2 / PHP 5.
In addition to all features already available in the PHP 4 mysql extension, PHP 5 / mysqli also supports:
The talk will show some samples on how to use the new mysqli extension itself, its new features like variable binding, and how to port and migrate existing PHP 4 / mysql applications to the new improved mysqli extension for PHP 5.
Marten Mickos (CEO, MySQL AB)
Marten will talk about how MySQL AB has evolved and grown in the last year and
what plans the company has for the future.
He will also look into trends in the software industry and analyse the role
Open Source software plays and will play for users and producers of software.
David Axmark (Co-Founder, MySQL AB), Michael "Monty" Widenius (Co-Founder/CTO, MySQL AB)
This talk will cover the current state of MySQL and it development
road-map. The respective features of MySQL version 4.0, 4.1 and 5.0
will be covered. The focus will be on the minor features since the
major features will be covered by their own talks.
Mike Hillyer (Partner, Dynamergy)
Why VB/MySQL
Visual Basic allows for fast development
Easy to learn, useful for database interfaces
ODBC Layer is very mature
MySQL datatypes and their VB counterparts
Summary of different MySQL datatypes and what VB datatypes to use
Things to watch out for during data conversions
Useful VB controls
VB Listview, Treeview controls
ADO Basics
ADO Objects and their uses
Connection Objects
Executing SQL statements
Recordset onjects
Connection Strings
Connection String basics
Option values for various VB uses
Sample connection strings
Displaying data
Moving data from a recordset into listviews and other controls
Dealing with NULLable fields
Updating Data
Using a recordset to INSERT/UPDATE
Building SQL statements to perform INSERT/UPDATE.
Using BLOB and TEXT fields
getchunk/appendchunk
Indepth ADO stream object
Error handling
Common MySQL errors and handling nativeerrors
Common ADO errors
Common programmer errors
Sample Application
Jeremy Zawodny (Technical Lead, Yahoo!)
Replication provides a great mechanism for scaling MySQL beyond a single machine and even across vast distances. It can also be used to provide a "hot spare" server which can be used in the event that the primary server fails.
In this session, we'll look at how MySQL replication works and how to configure it. How is replication in MySQL 4.0 different than in the previous releases?
We'll also cover common problems and solutions. Why does replication fail? How can you monitor and detect when replication fails? What's the best way to add one more new slaves to an existing replication setup? Which replication topology makes the most sense for a given application?
Finally, we'll discuss hardware and software solutions that can be combined with replication to provide load-balancing and high-availability.
Reggie Burnett (Owner/Consultant, ByteFX, Inc.)
This technical session, led by author and consultant Reggie Burnett, provides an introduction to using MySQL from within Microsoft?s latest technology platform, .NET. An overview of ADO.Net will be followed by an examination of the various APIs that can be used to access MySQL.
Reggie will go over the major parts of the ByteFX MySQL driver, discussing the various support classes and interfaces required to implement a .NET data provider. Performance of the various .NET MySQL APIs will be examined as well as advantages and disadvantages to using each one.
Reggie will also discuss using MySQL from a .NET application running on Mono, an open source effort to support .NET applications on other operating systems.
Major topics will include:
Overview of ADO.Net objects and interfaces
Inspection of current ByteFX MySQL data provider
Comparison of ByteFX provider with other .NET MySQL APIs
Discussion of various technological concepts when building .NET applications using MySQL
This session is designed for both Windows and non-Windows developers looking to leverage .NET technologies in their MySQL applications.
Using MySQL with Ruby is a tutorial session that provides practical "how-to" information intended to give attendees the information they need to write their own MySQL-based Ruby programs.
This session is intended to increase the exposure of Ruby within the MySQL community and provide MySQL developers with both a general overview of what Ruby has to offer them, and practical techniques showing how to put Ruby to use for accessing MySQL. The session will show attendees what Ruby database-access software is available, how to install it, and how to use it to write MySQL-based programs. The session covers both the low-level MySQL module that provides a Ruby binding to the MySQL C client library, and the higher-level Ruby DBI module that is patterned after Perl's DBI module.
The session will cover general query execution (issuing queries and processing their results), and more specific topics such as transaction handling and dealing with exceptions. It will illustrate how to use Ruby for database access for writing both command-line scripts and web scripts that connect your database to the web.
For attendees who have experience writing MySQL programs in languages such as Perl or PHP, the session also will discuss how Ruby's database-access capabilities stack up against other languages. The comparison examines different APIs in terms of architectural design and underlying implementations, as well as differences in coding styles when using the APIs.
Major points:
Brian Aker (Technical Lead, OSDN)
User Defined Functions allow you to extend past the "push data in, pull data
out" architectures that people commonly limit databases to. This talk will
discuss how you can use the user defined function API to make your database do
more then simple data storage. I will show how you can make use of
commonly found C libraries to create GUID's, image converters, URL fetchers
and more. This talk will also show how you can use common scripting languages
like Perl to extend your database for web and data-warehousing applications.
MySQL was chosen as the Open Source database to drive a web-based software build system that will facilitate the request, execution and information warehousing of software builds for Mentor Graphics products from the Systems Design Division. We needed a powerful and freely distributed database that would be the driving force behind a powerful web-based software build system that facilitates the compilation of C/C++ and Java source code. The system needed an efective web interface, build queueing and an efficient way of packaging the entire system onto a CD. We also required that the system run on all major OS platforms, including Solaris, HP/UX, Windows and Linux.
Various databases were researched, including some testing of MS SQL with ASP/VBScript, as well as IIS web server. Research and testing directed to the Open Source community. Our requirements were all met and the build system was completed and is now known as GBS or Global Build System, which brings together PHP, Perl and Apache with MySQL as the core. Build queueing was accomplished with MySQL tables and a Perl client/server application. Web-based GUI interfaces were accomplished with PHP and an Apache web server.
All of the Open Source technologies, including MySQL, allowed for easy packaging onto a CD for use amongst our entire division. GBS was successfully designed, build and is now being tested in real-life applications.
It is a model of Open Source technology winning against high-cost software and proving to be more powerful and robust then it's counterparts.
Dr. John C. Hayward (Wheaton College)
Mysql databases are easy to use and are platform independent. The basic support for forms for HTML does not provide data type checking, foreign key or other data constraints required for database integrity. Javascript can be use on the client side and PHP can be used on the server side to check validity of data and interacting with the database.
WebFormOMatic is a web based open source tool which allows one to select a database, extract from the information from the database, add in extensible types to automatically create forms which have Javascript programming to check data integrity and PHP scripts to enter data into a Mysql database. This tool greatly simplifies the development of web based forms which have high data integrity.
WebFormOMatic guides the developer thru a series of forms to select the server, user and passwords for view and change of information. Database and table selection follow. For each column the inclusion, requirement, tab order in the form, example, default value, validation type, display and max length for text type entries can be specified. From the database requirment (not NULL), primary key, enumerated types and lengths are automatically presented.
The validated types include foreign key types which allow for selection of the foreign table key and display value for the in a select on the form. There are also extensible types which provide for Javascript validation and default attributes - for example phone numbers must have area code which may be defaulted, exchange and number.
A sample input form is presented and forms for insert, view, update, delete are written out. These web forms include HTML, Javascript and PHP to interact with the Mysql database in a manner which maintains data integrity with little effort by the developer.
