Linux使用ODBC方式還是DBI方式安裝R語言擴展包好
在R中連接數據庫需要安裝其它的擴展包,根據連接方式不同我們有兩種選擇:一種是ODBC方式,需要安裝RODBC包并安裝ODBC驅動。另一種是DBI方式,可以根據已經安裝的數據庫類型來安裝相應的驅動。那么我們該使用ODBC方式進行安裝還是使用DBI方式進行安裝呢?今天小編就給大家分析下這兩種安裝方式的區(qū)別吧。
Linux使用ODBC方式還是DBI方式安裝R語言擴展包好?
在R中連接數據庫需要安裝其它的擴展包,根據連接方式不同我們有兩種選擇:一種是ODBC方式,需要安裝RODBC包并安裝ODBC驅動。另一種是DBI方式,可以根據已經安裝的數據庫類型來安裝相應的驅動。因為后者保留了各數據庫原本的特性,所以個人比較偏好用DBI連接方式。有下面這幾種主要的包提供了DBI連接:RMySQL,RSQLite,ROracle,RPostgreSQL。由名字看得出它們分別對應了幾種主流的數據庫。
這幾種數據庫中SQLite是一個輕量級的數據庫,完全免費,使用方便,不需要安裝,無須任何配置,也不需要管理員。如果只需要本地單機操作,用它來配合R來存取數據是非常方便的。
R中操作SQLite數據庫的示例。
1、下載SQLite,它是一個單獨的執(zhí)行文件,并且是在命令行下操作。如果不習慣可以安裝sqlitebrowser之類的GUI。先把它放到一個文件夾中,例如sqlite。
2、在sqlite中執(zhí)行sql腳本,建立一個數據庫。將腳本文件放到同一個文件夾中,然后執(zhí)行下面的?,F在文件夾中應該有train.db這個數據庫文件了。
.read Scheme.sql
.read Data.sql
.backup train.db
3、在R中安裝RSQlite包
install.packages(‘RSQlite’)
4、加載RSQlite包,建立連接后用SQL讀取數據
library(RSQLite)
# 建立連接,注意數據庫類型和文件地址
con 《- dbConnect(‘SQLite’, dbname=‘d:/sqlite/train.db’)
# 觀察數據庫中有三個數據表格
dbListTables(con)
# 觀察其中一個表的字段
dbListFields(con, ‘Apply’)
# 寫一段SQL語句,來選取需要的數據
sql 《- “select sName, GPA, decision ,cName
from Student, Apply
where Student.sID = Apply.sID
and sizeHS 《 1000 and major = ‘CS’ and cName = ‘Stanford’”
# 將選取的數據存入到data中,同時顯示出來
(data 《- dbGetQuery(con, sql))
# 關閉數據庫連接
dbDisconnect(con)
補充:MySQL 數據庫常用命令
create database name; 創(chuàng)建數據庫
use databasename; 進入數據庫
drop database name 直接刪除數據庫,不提醒
show tables; 顯示表
describe tablename; 查看表的結構
select 中加上distinct去除重復字段
mysqladmin drop databasename 刪除數據庫前,有提示。
顯示當前mysql版本和當前日期
select version(),current_date;
數據庫維護方法
在MySQL使用的過程中,在系統(tǒng)運行一段時間后,可能會產生碎片,造成空間的浪費,所以有必要定期的對MySQL進行碎片整理。
當刪除id=2的記錄時候,發(fā)生的現象
這個時候發(fā)現磁盤的空間并沒有減少。這種現象就叫做碎片化(有一部分的磁盤空間在數據刪除以后(空),還是無法被操作系統(tǒng)所使用。)
常見的優(yōu)化:
# alter table xxx engine myisam;
# optimize table t1;
注意: 在實際開發(fā)的過程中,上面兩個語句盡量少使用,因為在使用的過程中,MySQL的表的結構會整體全部重新整理,需要消耗很多的資源,建議在凌晨兩三點鐘的時候執(zhí)行。(在linux下有定時器腳本可以執(zhí)行,crontab)
sql腳本相關文章: