Data Import Memory Management
To import data with simple queries, you can use the Database Explorer app. For more complex queries and managing memory issues, use the command line to import data into the MATLAB® workspace. To understand the differences between these two approaches, see Data Import Using Database Explorer App or Command Line.
Database Toolbox™ provides various ways to import data into the MATLAB workspace from a database.
sqlread Function
If you are not familiar with writing SQL queries, you can import data using the
sqlread function. This function needs only a database connection and
the database table name to import data. Furthermore, the
sqlread function does not require you to set database
preferences.
select Function
For memory savings, you can import and access data using the select function. With this function,
you save memory by importing data using data types specified in a database. The
table definitions in a database specify the data type for each column. The
select function maps the data type in the database to a
corresponding MATLAB data type for each variable during data import. Instead of importing
every numeric value as a double in MATLAB, the select function allows the import of
different integer data types. You no longer need to convert the data type of a
numeric value to a specific numeric type after data import. The MATLAB memory size used by integer or unsigned integer data types is less
than double precision. Therefore, the select function saves
memory.
This table shows the numeric data types in a database and their MATLAB equivalents when using the select
function.
| Database Data Type | MATLAB Data Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Boolean |
|
Date, time, or text |
|
For example, create a table Patients with this database table
definition:
CREATE TABLE Patients(
LastName VARCHAR(50),
Gender VARCHAR(10),
Age TINYINT,
Location VARCHAR(300),
Height SMALLINT,
Weight SMALLINT,
Smoker BIT,
Systolic FLOAT,
Diastolic NUMERIC,
SelfAssessedHealthStatus VARCHAR(20))These table columns have numeric data types in the database:
AgeHeightWeightSystolicDiastolic
The fetch function imports the columns
of numeric data with double precision by default. However, the
select function imports the columns into their matching
integer data type. When you import using the select function,
the corresponding MATLAB data types for these columns are:
uint8uint16uint16singledouble
The fetch function imports the Smoker
column as a double in MATLAB. However, the select function imports the
Smoker column as a logical
variable.
To see data types after data import, use the select function
with the metadata output argument.
Define Import Strategy Using SQLImportOptions Object
You can customize the import options for importing data from a database into the
MATLAB workspace by using the SQLImportOptions object with the fetch function. The
select function specifies the MATLAB data type by default. However, with the
SQLImportOptions object, you can define the import strategy for
specific database columns and specify the MATLAB data type for the corresponding imported data.
Also, you can specify categorical, datetime,
and integer data types for imported data using the SQLImportOptions
object. The MATLAB memory size used to store these data types is less than the memory
size used for alternative data types, such as string or
double.
See Also
fetch | executeSQLScript | select | sqlread