Time of Update: 2017-02-28
在本書的這部分中,我們將討論編寫自己的訪問MySQL資料庫的程式所需要知道的內容。MySQL有一組公用程式。例如, mysqldump 匯出表的上下文和結構定義, mysqlimport將資料檔案載入到表中, mysqladmin 實現管理w操作, mysql可以使使用者與伺服器互動來執行任意的查詢。每個標準的MySQL公用程式都傾向於小巧,重點放在程式可完成特定的、有限的功能。即使mysql也是如此,從感覺上說,
Time of Update: 2017-02-28
4.5 調度與鎖定問題 前面各段主要將精力集中在使個別的查詢更快上。MySQL還允許影響語句的調度特性,這樣會使來自幾個客戶機的查詢更好地協作,從而單個客戶機不會被鎖定太長的時間。更改調度特性還能保證特定的查詢處理得更快。我們先來看一下MySQL的預設調度策略,然後來看看為改變這個策略可使用什麼樣的選項。出於討論的目的,假設執行檢索( SELECT)的客戶機程式為讀取程式。執行修改表操作( DELETE,INSERT,REPLACE 或UP
Time of Update: 2017-02-28
4.4 有效地裝載資料 很多時候關心的是最佳化SELECT 查詢,因為它們是最常用的查詢,而且確定怎樣最佳化它們並不總是直截了當。相對來說,將資料裝入資料庫是直截了當的。然而,也存在可用來改善資料裝載操作效率的策略,其基本原理如下: ■ 成批裝載較單行裝載更快,因為在裝載每個記錄後,不需要重新整理索引快取;可在成批記錄裝入後才重新整理。 ■
Time of Update: 2017-02-28
4.3 列類型選擇與查詢效率 要選擇有助於使查詢執行更快的列,應遵循如下規則(這裡,“BLOB 類型”應該理解為即包含B L O B也包含TEXT 類型): ■ 使用定長列,不使用可變長列。這條準則對被經常修改,從而容易產生片段的表來說特別重要。例如,應該選擇CHAR 列而不選擇VARCHAR
Time of Update: 2017-02-28
4.2 MySQL查詢最佳化程式 在發布一個選擇行的查詢時, MySQL進行分析,看是否能夠對它進行最佳化,使它執行更快。本節中,我們將研究查詢最佳化程式怎樣工作。更詳細的資訊,可參閱MySQL參考指南中的“Getting Maximum Performance from
Time of Update: 2017-02-28
關聯式資料庫的世界是一個表與集合、表與集合上的運算占統治地位的世界。資料庫是一個表的集合,而表又是行和列的集合。在發布一條SELECT 查詢從表中進行檢索行時,得到另一個行和列的集合。這些都是一些抽象的概念,對於資料庫系統用來操縱表中資料的基本表示沒有多少參考價值。另一個抽象概念是,表上的運算都同時進行;查詢是一種概念性的集合運算,並且集合論中沒有時間概念。當然,現實世界是相當不同的。資料庫管理系統實現了抽象的概念,但是在實際的硬體
Time of Update: 2017-02-28
3.9 MySQL不支援的功能 本節介紹其他資料庫中有而MySQL中無的功能。它介紹省略了什麼功能,以及在需要這些功能時怎麼辦。一般情況下, MySQL之所以忽略某些功能是因為它們有負面效能影響。有的功能正在開發人員的計劃清單上,一旦找到一種方法可以實現相應的功能而又不致於影響良好效能的目標,就會對它們進行實現。 ■ 子選擇。子選擇是嵌套在另一個SELECT 語句內的SELECT
Time of Update: 2017-02-28
3.8 解決方案隨筆 本節內容相當雜;介紹了怎樣編寫解決各種問題的查詢。多數內容是在郵件清單上看到的問題的解決方案(謝謝清單上的那些朋友,他們為解決方案作了很多工作)。 3.8.1將子選擇編寫為串連
Time of Update: 2017-02-28
3.7 加註釋 MySQL允許在SQL 代碼中使用注釋。這對於說明存放在檔案中的查詢很有用處。可用兩個方式編寫注釋。以“ #”號開頭直到行尾的所有內容都認為是注釋。另一種為C 風格的注釋。即,以“/ *”開始,以“* /”結束的所有內容都認為是注釋。C 風格的注釋可跨多行,如: 自MySQL3.23 版以來,可在C 風格的注釋中“隱藏” MySQL特有的關鍵字,注釋以“/ * !”而不是以“ /
Time of Update: 2017-02-28
3.6 檢索記錄 除非最終檢索它們並利用它們來做點事情,否則將記錄放入資料庫沒什麼好處。這就是SELECT 語句的用途,即協助取出資料。SELECT 大概是SQL 語言中最常用的語句,而且怎樣使用它也最為講究;用它來選擇記錄可能相當複雜,可能會涉及許多表中列之間的比較。SELECT 語句的文法如下: 除了詞“ S E L E C T”和說明希望檢索什麼的column_list
Time of Update: 2017-02-28
3.3 建立、刪除和選擇資料庫 MySQL提供了三條資料庫級的語句,它們分別是: CREATE DATABASE 用於建立資料庫,DROP DATABASE 用於刪除資料庫,USE 用於選擇預設資料庫。 1. CREATE DATABASE 語句 建立一個資料庫很容易;只要在CREATE DATABASE 語句中給出其名稱即可:
Time of Update: 2017-02-28
為了與MySQL伺服器進行通訊,必須熟練掌握SQL。例如,在使用諸如mysql客戶機這樣的程式時,其功能首先是作為一種發送SQL 陳述式給伺服器執行的工具。而且,如果編寫使用程式設計語言所提供的MySQL介面的程式時,也必須熟悉SQL 語言,因為需要發送SQL 語句與伺服器溝通。
Time of Update: 2017-02-28
2.4 運算式求值和類型轉換 MySQL允許編寫包括常量、函數調用和表列引用的運算式。這些值可利用不同類型的運算子進行組合,諸如算術運算子或比較子。運算式的項可用圓括弧來分組。運算式在SELECT 語句的列挑選清單和WHERE 子句中出現得最為頻繁,如下所示: 所選擇的每列給出了一個運算式,如WHERE 子句中所示的那樣。運算式也出現在DELETE 和UPDATE語句的WHERE 子句中,以及出現在INSERT
Time of Update: 2017-02-28
6.8 其他主題 本節包括幾個主題,這些主題不完全適合於本章從client1到client5 的開發中的任一小節的內容: ■ 在使用結果集中繼資料協助驗證這些資料適合於計算之後,使用結果集資料計算結果。 ■ 如何處理很難插入到查詢中的資料。 ■ 如何處理圖形資料。 ■ 如何獲得表結構的資訊。 ■
Time of Update: 2017-02-28
近期項目軟體升級到支援交易處理,做個樣本供大家學習參考環境 mysql 5.2 /php 5支援事務的table 類型 需要innodb<?php$linkid =mysql_connect('localhost:3307','root',*******);mysql_select_db('web_his',$linkid);mysql_query("set names utf8");/* 建立事務 */mysql_query('start transaction')
Time of Update: 2017-02-28
mysql 一、 while迴圈 在這一課裡,我們將會繼續深入下去,使用PHP和MySQL來寫出一些簡單而有用的頁面。我們從昨天建立的資料庫開始,顯示庫中的資料,但是會再稍微加以潤色。 首先,我們用下面的代碼來查詢資料庫內容。 <html><body><?php$db = mysql_connect("localhost", "root");mysql_select_db(
Time of Update: 2017-02-28
mysql 一、PHP/MySQL簡介 您應該聽說過開放原始碼軟體(OSS),除非最近六到八個月來您一直住在火星上。這場運動有著巨大的衝擊力,已引起一些大公司的注意。象Oralce、Informix,還有多家公司都開始把他們的主力資料庫產品移植到OSS的產物之一 - Linux作業系統上。
Time of Update: 2017-02-28
mysql 近日在為學校製做校友錄時,需要身分識別驗證,在對比之後決定採用PHP+MYSQL進行身分識別驗證。
Time of Update: 2017-02-28
包含CRUD,事務,樹遞迴查詢,分頁等. 示範簡單的魅力. 所有的參數都escape了,不存在注入問題. /* * Anthony.chen * 2010 reserved */ class DB { // Query types const SELECT = 1; const INSERT = 2; const UPDATE = 3; const DELETE = 4; const T = 't'; const F = 'f';
Time of Update: 2017-02-28
這篇文章主要是從原理, 手冊和源碼分析在PHP中查詢MySQL返回大量結果時, 記憶體佔用的問題, 同時對使用MySQL C API也有涉及。 昨天, 有同事在PHP討論群裡提到, 他做的一個項目由於MySQL查詢返回的結果太多(達10萬條), 從而導致PHP記憶體不夠用。 所以, 他問, 在執行下面的代碼遍曆返回的MySQL結果之前, 資料是否已經在記憶體中了? - while ($row = mysql_fetch_assoc($result)) { // … }