NoSQL不像傳統(tǒng)關系型庫那樣有統(tǒng)一的標準,也不具有普適性。所以要根據(jù)應用和數(shù)據(jù)的存取特征來選擇適合的NoSQL。如果以前沒有接觸過NoSQL,MongoDB是一個比較好的選擇,他支持的所以和查詢能力是所有NoSQL中最強大的,缺點是索引的成本和文檔大小限制。如果是使用Hadoop大數(shù)據(jù)分析,數(shù)據(jù)基本上不存在修改,只是插入和查詢,并且需要配合Hadoop的MR任務,HBase會是很好的選擇。如果要求有很強的擴展能力,高并發(fā)讀寫和維護方便,Casaandra則是不錯的選擇。當然除了上面三個流行的NoSQL,還有很多優(yōu)秀的NoSQL數(shù)據(jù)庫,而且他們都有各自擅長領域,所以需要了解你們產(chǎn)品自身的特點然后分析選擇哪種才是最適合的,往往在大型系統(tǒng)中不是單一的數(shù)據(jù)庫,而是使用多種數(shù)據(jù)庫組合。
創(chuàng)新互聯(lián)是專業(yè)的桃城網(wǎng)站建設公司,桃城接單;提供成都網(wǎng)站制作、網(wǎng)站設計、外貿(mào)網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行桃城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
NoSQL數(shù)據(jù)庫有很多種,實現(xiàn)方式差別很大。有接近SQL查詢方式的,也有純粹的鍵值對查詢。
對于K-V型數(shù)據(jù)庫,比較典型的是Redis,系統(tǒng)提供了get、set之類的命令用于增刪改查。關鍵是鍵值對的鍵和值怎么設計。
簡單來說,傳統(tǒng)關系型數(shù)據(jù)庫的修改與刪除,可以快速通過主鍵、列或索引直接鎖定到某一行或某些行,進行物理刪除。
而對于Hbase來說,受到hdfs文件系統(tǒng)的局限(hdfs文件系統(tǒng)不能修改,添加也很不方便),進行CRUD的操作就會變得相對復雜。
Hbase的修改,是根據(jù)某個行鍵添加一行數(shù)據(jù),并未這行數(shù)據(jù)生成一個較新的時間戳來實現(xiàn),每個行鍵都會對應多個時間戳的數(shù)據(jù),那么最新的時間戳就是最終修改后的內(nèi)容。
而刪除則是通過標記來實現(xiàn),如果要刪除某行記錄,Hbase會添加一個帶有刪除標記的行,通過這個刪除標記來辨認該行建的數(shù)據(jù)是否刪除。
Hbase與關系型數(shù)據(jù)庫的區(qū)別:
1、場景
Hbase是面向列的數(shù)據(jù)庫,適合大量的插入的同時又要具備不俗的讀功能,而Oracle或其他關系型數(shù)據(jù)庫適合處理比較復雜的業(yè)務關系或事務處理,而且,在數(shù)據(jù)在一定量級下都會有良好的表現(xiàn),并不是所有業(yè)務的數(shù)據(jù)壓力都會發(fā)生比較極端的情況。
2、索引
Hbase只能做主鍵索引,而關系型數(shù)據(jù)庫可以根據(jù)需求不同加入適合的索引機制,供用戶查詢。
3、瓶頸
Hbase的瓶頸是硬盤的傳輸速度,Oracle的瓶頸是硬盤的尋道時間(可以看做是硬盤的轉數(shù))。
4、業(yè)務
Hbase適合按照時間排序的業(yè)務,而Oracle或其他關系型數(shù)據(jù)庫應用比較廣泛,如OLTP或OLAP
package basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBC {
public void findAll() {
try {
// 獲得數(shù)據(jù)庫驅動
//由于長時間不寫,驅動名和URL都忘記了,不知道對不對,你應該知道的,自己改一下的哈
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
// 創(chuàng)建連接
Connection conn = DriverManager.getConnection(url, userName,
password);
// 新建發(fā)送sql語句的對象
Statement st = conn.createStatement();
// 執(zhí)行sql
String sql = "select * from users";
ResultSet rs = st.executeQuery(sql);
// 處理結果
while(rs.next()){
//這個地方就是給你的封裝類屬性賦值
System.out.println("UserName:"+rs.getString(0));
}
// 關閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(){
try {
//步驟還是那六個步驟,前邊的兩步是一樣的
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url,userName,password);
//這里的發(fā)送sql語句的對象是PreparedStatement,成為預處理sql對象,因為按條件刪除是需要不定值的
String sql = "delete from users where id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(0, 1);
int row = ps.executeUpdate();
if(row!=0){
System.out.println("刪除成功!");
}
// 關閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
1.與數(shù)據(jù)庫連接代碼,網(wǎng)上很多,不在此列表中的
2.構造查詢,SQL
3.通過ASP的一些功能,對檢查出的顯示數(shù)據(jù)
分享標題:nosql怎么修改數(shù)據(jù),nosql怎么修改數(shù)據(jù)庫
當前網(wǎng)址:http://www.rwnh.cn/article4/dssodoe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、網(wǎng)站內(nèi)鏈、關鍵詞優(yōu)化、電子商務、移動網(wǎng)站建設、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)