事務保證ACID,但**獨占鎖降低併發**。高併發電商場景下,LOCK TABLES ... WRITE + 讀改寫 + UNLOCK TABLES可替代簡單事務:
LOCK TABLE inventory WRITE;
SELECT Quantity FROM inventory WHERE Item='book';
-- 業務計算
UPDATE inventory SET Quantity=11 WHERE Item='book';
UNLOCK TABLES;
WRITE鎖阻塞其它讀寫,粒度粗但無事務開銷,**低併發/簡單邏輯適用**。
CREATE TABLE customerinfo (
CustomerID INT NOT NULL PRIMARY KEY
) ENGINE=INNODB;
CREATE TABLE salesinfo (
SalesID INT NOT NULL,
CustomerID INT NOT NULL,
PRIMARY KEY(CustomerID, SalesID),
FOREIGN KEY (CustomerID) REFERENCES customerinfo(CustomerID) ON DELETE CASCADE
) ENGINE=INNODB;
ON DELETE CASCADE級聯刪除從表記錄province),索引無效反拖性能ALTER TABLE/CREATE INDEXFULLTEXT**僅MyISAM支援**;大數據先導數據後建全文索引(極快),勿先建索引再導數據(極慢)