Monday Feb 17, 2014

MySQL Connectors, a Real Plus for Developers

MySQL Connectors provide connectivity to the MySQL server for client programs. APIs provide low-level access to the MySQL protocol and MySQL resources. Both Connectors and the APIs enable you to connect and execute MySQL statements from another language or environment. Oracle provides a number of these, enabling developers to build database applications in the language of their choice. Among those developed by Oracle are drivers for JDBC and ODBC. Any system that works with JDBC or ODBC can use MySQL. And you can find many more, including drivers for PHP, Perl, Python, Ruby, Tcl and even Eiffel!

To get a head start on developing with MySQL, take the MySQL for Developers training course. This 5-day training course, created with the MySQL experts, is available as a:

  • Live-Virtual Event: Take this course from your own desk - no travel required. You can choose from a selection of events on the schedule to suit different timezones.
  • In-Class Event: Travel to an education center to take this course. Below is a selection of the events already on the schedule.

 Location

 Date

 Delivery Language

 Brussels, Belgium

 12 May 2014

 English

 Sao Paolo, Brazil

 12 May 2014

 Brazilian Portuguese

 Milan, Italy

 7 April 2014

 Italian

 Rome, Italy

 10 March 2014

 Italian

 Petaling Jaya, Malaysia

 21 April 2014

 English

 Utrecht, Netherlands

 12 May 2014

 English

 Makati City, Philippines

 17 March 2014

 English

 Lisbon, Portugal

 26 May 2014

 European Portuguese

 Porto, Portugal

 26 May 2014

 European Portuguese

 Singapore

 17 February 2014

 English

 Madrid, Spain

 17 March 2014

 Spanish

 Valencia, Spain

 21 April 2014

 Spanish

To register for an event, request an additional event or learn more about the authentic MySQL curriculum, go to http://education.oracle.com/mysql.

Prove your MySQL Developer skills by taking the MySQL 5.6 Developers certification exam which is well aligned with the MySQL for Developers training course.

Friday Aug 02, 2013

MySQL Connector/J 5.1.26 has been released

MySQL Connector/J 5.1.26, a maintenance release of the production 5.1 branch has been released. Connector/J is the Type-IV pure-Java JDBC driver for MySQL. Version 5.1.26 is suitable for use with many MySQL server versions, including 4.1, 5.0, 5.1, 5.4, 5.5 and 5.6. It is already available for download on the My Oracle Support (MOS) website. The eDelivery download will be available on it's own regular schedule. As always, we recommend that you check the "CHANGES" file in the download archive to be aware of changes in behavior that might affect your application.

MySQL Connector/J 5.1.26 includes the following general bug fixes and improvements, also available in more detail here

Functionality Added or Changed:

  • Added a toString() method to the PreparedStatementWrapper class to help debug prepared statements. (Bug #42267, Bug #11751418)

Bugs Fixed :

  • Connector/J silently ignored calls to ResultSet.updateRow when  the cursor was on the insert row. This fix ensures that an SQLException is thrown with those calls, as described in the JDBC specification. (Bug #45757, Bug #11754192)
  • The results returned by the method DatabaseMetaData.getIndexInfo() were not sorted in the order described in the JDBC specification (NON_UNIQUE, TYPE,   INDEX_NAME, and ORDINAL_POSITION). (Bug #68098, Bug #16224299)
  • DatabaseMetaData.getColumns() threw an  MySQLSyntaxErrorException if the schema contains tables with  ANSI quoted names with leading and trailing back quotes (`).    When those names were passed as parameters in unquoted form, Connector/J treated them as quoted because of the back quotes, and thus the error. This fix adds the behavior that when the connection property pedantic was set to true, methods like DatabaseMetaData.getColumns() treat all parameters as unquoted. (Bug #65871, Bug #14598704).
  • An out of memory error occured when the compression protocol was enabled with the connection option useCompression=true. This fix stops the memory leak that caused the error by making sure that CompressedInputStream releases its reference to the  connection object when the input stream closes. (Bug #68400, Bug #16478043)

We greatly appreciate your feedback / comments. Please post it in forums or bugdb.

Wednesday Jul 03, 2013

MySQL Connector Python 1.0.11 has been released!

Dear MySQL users,

MySQL Connector/Python v1.0.11 is a new version of the 1.0 production release of the pure Python database driver for MySQL.

MySQL Connector/Python version 1.0 is compatible with MySQL Server versions 5.5 and greater, but should work with earlier versions (greater than v4.1). Python v2.6 and greater as well as Python v3.1 and greater are supported. Python v2.4 and v2.5 are known to work, but are not officially supported.

MySQL Connector/Python v1.0.11 is available for download from
http://dev.mysql.com/downloads/connector/python/#downloads

A brief summary of changes in MySQL Connector/Python v1.0 is listed below. Please check the change log file inside the distribution for a more complete list of changes or online at: http://dev.mysql.com/doc/relnotes/connector-python/en/

Functionality Added or Changed in C/Py 1.0.11 version

  • Connector/Python was updated with error information from MySQL  5.7.1. (Bug #16896702)
  • Debian (.deb) packages for Connector/Python are now available.

Online documentation is available at http://dev.mysql.com/doc/connector-python/en/index.html

We greatly appreciate your feedback / comments. Please post it in forums or bugdb.



Monday Jul 02, 2012

NoSQL Java API for MySQL Cluster: Questions & Answers

The MySQL Cluster engineering team recently ran a live webinar, available now on-demand demonstrating the ClusterJ and ClusterJPA NoSQL APIs for MySQL Cluster, and how these can be used in building real-time, high scale Java-based services that require continuous availability.

Attendees asked a number of great questions during the webinar, and I thought it would be useful to share those here, so others are also able to learn more about the Java NoSQL APIs.

First, a little bit about why we developed these APIs and why they are interesting to Java developers.

ClusterJ and Cluster JPA

ClusterJ is a Java interface to MySQL Cluster that provides either a static or dynamic domain object model, similar to the data model used by JDO, JPA, and Hibernate. A simple API gives users extremely high performance for common operations: insert, delete, update, and query.

ClusterJPA works with ClusterJ to extend functionality, including

- Persistent classes

- Relationships

- Joins in queries

- Lazy loading

- Table and index creation from object model

By eliminating data transformations via SQL, users get lower data access latency and higher throughput. In addition, Java developers have a more natural programming method to directly manage their data, with a complete, feature-rich solution for Object/Relational Mapping. As a result, the development of Java applications is simplified with faster development cycles resulting in accelerated time to market for new services.

MySQL Cluster offers multiple NoSQL APIs alongside Java:

  • - Memcached for a persistent, high performance, write-scalable Key/Value store,
  • - HTTP/REST via an Apache module
  • - C++ via the NDB API for the lowest absolute latency.

Developers can use SQL as well as NoSQL APIs for access to the same data set via multiple query patterns – from simple Primary Key lookups or inserts to complex cross-shard JOINs using Adaptive Query Localization

Marrying NoSQL and SQL access to an ACID-compliant database offers developers a number of benefits. MySQL Cluster’s distributed, shared-nothing architecture with auto-sharding and real time performance makes it a great fit for workloads requiring high volume OLTP. Users also get the added flexibility of being able to run real-time analytics across the same OLTP data set for real-time business insight.

OK – hopefully you now have a better idea of why ClusterJ and JPA are available. Now, for the Q&A.

Q & A

Q. Why would I use Connector/J vs. ClusterJ?

A. Partly it's a question of whether you prefer to work with SQL (Connector/J) or objects (ClusterJ). Performance of ClusterJ will be better as there is no need to pass through the MySQL Server. A ClusterJ operation can only act on a single table (e.g. no joins) - ClusterJPA extends that capability

Q. Can I mix different APIs (ie ClusterJ, Connector/J) in our application for different query types?

A. Yes. You can mix and match all of the API types, SQL, JDBC, ODBC, ClusterJ, Memcached, REST, C++. They all access the exact same data in the data nodes. Update through one API and new data is instantly visible to all of the others.

Q. How many TCP connections would a SessionFactory instance create for a cluster of 8 data nodes?

A. SessionFactory has a connection to the mgmd (management node) but otherwise is just a vehicle to create Sessions. Without using connection pooling, a SessionFactory will have one connection open with each data node. Using optional connection pooling allows multiple connections from the SessionFactory to increase throughput.

Q. Can you give details of how Cluster J optimizes sharding to enhance performance of distributed query processing?

A. Each data node in a cluster runs a Transaction Coordinator (TC), which begins and ends the transaction, but also serves as a resource to operate on the result rows. While an API node (such as a ClusterJ process) can send queries to any TC/data node, there are performance gains if the TC is where most of the result data is stored. ClusterJ computes the shard (partition) key to choose the data node where the row resides as the TC.

Q. What happens if we perform two primary key lookups within the same transaction? Are they sent to the data node in one transaction?

A. ClusterJ will send identical PK lookups to the same data node.

Q. How is distributed query processing handled by MySQL Cluster ?

A. If the data is split between data nodes then all of the information will be transparently combined and passed back to the application. The session will connect to a data node - typically by hashing the primary key - which then interacts with its neighboring nodes to collect the data needed to fulfil the query.

Q. Can I use Foreign Keys with MySQL Cluster

A. Support for Foreign Keys is included in the MySQL Cluster 7.3 Early Access release

Summary

The NoSQL Java APIs are packaged with MySQL Cluster, available for download here so feel free to take them for a spin today!

Key Resources

MySQL Cluster on-line demo 

MySQL ClusterJ and JPA On-demand webinar 

MySQL ClusterJ and JPA documentation

MySQL ClusterJ and JPA whitepaper and tutorial

About

Get the latest updates on products, technology, news, events, webcasts, customers and more.

Twitter


Facebook

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
2
5
6
9
10
11
12
13
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today