程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SqlServer頂用exec處置sql字符串中含有變量的小例子

SqlServer頂用exec處置sql字符串中含有變量的小例子

編輯:MSSQL

SqlServer頂用exec處置sql字符串中含有變量的小例子。本站提示廣大學習愛好者:(SqlServer頂用exec處置sql字符串中含有變量的小例子)文章只能為提供參考,不一定能成為您想要的結果。以下是SqlServer頂用exec處置sql字符串中含有變量的小例子正文


應用MySQL時,假如發明事務沒法回滾,但Hibernate、Spring、JDBC等設置裝備擺設又沒有顯著成績時,不要憂?,先看看MySQL創立的表有無成績,即表的類型。

InnoDB和MyISAM是在應用MySQL最經常使用的兩個表類型,各有優缺陷,視詳細運用而定。根本的差異為:MyISAM類型不支撐事務處置等高等處置,而InnoDB類型支撐。MyISAM類型的表強調的是機能,其履行數度比InnoDB類型更快,然則不供給事務支撐,而InnoDB供給事務支撐曾經內部鍵等高等數據庫功效。

MyIASM是IASM表的新版本,有以下擴大:

二進制條理的可移植性。

NULL列索引。

對變長行比ISAM表有更少的碎片。

支撐年夜文件。

更好的索引緊縮。

更好的鍵嗎統計散布。

更好和更快的auto_increment處置。

以下是一些細節和詳細完成的差異:

1. InnoDB不支撐FULLTEXT類型的索引。

2. InnoDB中不保留表的詳細行數,也就是說,履行select count(*) from table時,InnoDB要掃描一遍全部表來盤算有若干行,然則MyISAM只需簡略的讀出保留好的行數便可。留意的是,當count(*)語句包括where前提時,兩種表的操作是一樣的。

3. 關於AUTO_INCREMENT類型的字段,InnoDB中必需包括只要該字段的索引,然則在MyISAM表中,可以和其他字段一路樹立結合索引。

4. DELETE FROM table時,InnoDB不會從新樹立表,而是一行一行的刪除。

5. LOAD TABLE FROM MASTER操尴尬刁難InnoDB是不起感化的,處理辦法是起首把InnoDB表改成MyISAM表,導入數據後再改成InnoDB表,然則關於應用的額定的InnoDB特征(例如外鍵)的表不實用。

別的,InnoDB表的行鎖也不是相對的,假如在履行一個SQL語句時MySQL不克不及肯定要掃描的規模,InnoDB表異樣會鎖全表,例如update table set num=1 where name like “%aaa%”

任何一種表都不是全能的,只用適當的針對營業類型來選擇適合的表類型,能力最年夜的施展MySQL的機能優勢。

在MySQL 5.0外面,MyISAM和InnoDB存儲引擎機能差異其實不是很年夜,針對InnoDB來講,影響機能的重要是 innodb_flush_log_at_trx_commit 這個選項,假如設置為1的話,那末每次拔出數據的時刻都邑主動提交,招致機能急劇降低,應當是跟刷新日記有關系,設置為0效力可以或許看到顯著晉升,固然,異樣你可以SQL中提交“SET AUTOCOMMIT = 0”來設置到達好的機能。別的,還據說經由過程設置innodb_buffer_pool_size可以或許晉升InnoDB的機能,然則我測試發明沒有特殊顯著的晉升。

根本上我們可以斟酌應用InnoDB來替換我們的MyISAM引擎了,由於InnoDB本身許多優越的特色,好比事務支撐、存儲進程、視圖、行級鎖定等等,在並發許多的情形下,信任InnoDB的表示確定要比MyISAM強許多,固然,響應的在my.cnf中的設置裝備擺設也是比擬症結的,優越的設置裝備擺設,可以或許有用的加快你的運用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved