使用MYSQL索引[组图]_MySQL
关系数据库的世界是一个表与集合、表与集合上的运算占统治地位的世界。数据库是一个表的集合,而表又是行和列的集合。在发布一条SELECT 查询从表中进行检索行时,得到另一个行和列的集合。这些都是一些抽象的概念,对于数据库系统用来操纵表中数据的基本表示没有多少参考价值。另一个抽象概念是,表上的运算都同时进行;查询是一种概念性的集合运算,并且集合论中没有时间概念。
当然,现实世界是相当不同的。数据库管理系统实现了抽象的概念,但是在实际的硬件范围内要受到实际的物理约束。结果是,查询要花时间,有时要花很长的时间。而人类很容易不耐烦,不喜欢等待,因此我们丢下了集合上的那些瞬间的数学运算的抽象世界去寻求加速查询的方法。幸运的是,有几种加速运算的技术,可对表进行索引使数据库服务器查找行更快。可考虑怎样充分利用这些索引来编写查询。可编写影响服务器调度机制的查询,使来自多个客户机的查询协作得更好。我们思考基本硬件怎样运行,以便想出怎样克服其物理约束对性能进行改善的方法。
这些正是本章所要讨论的问题,其目标是优化数据库系统的性能,使其尽可能快地处理各种查询。MySQL已经相当快了,但即使是最快的数据库,在人的设计下还能运行得更快。
4.1使用索引
我们首先讨论索引,因为它是加快查询的最重要的工具。还有其他加快查询的技术,但是最有效的莫过于恰当地使用索引了。在MySQL的邮件清单上,人们通常询问关于使查询更快的问题。在大量的案例中,都是因为表上没有索引,一般只要加上索引就可以立即解决问题。但这样也并非总是有效,因为优化并非总是那样简单。然而,如果不使用索引,在许多情形下,用其他手段改善性能只会是浪费时间。应该首先考虑使用索引取得最大的性能改善,然后再寻求其他可能有帮助的技术。
本节介绍索引是什么、它怎样改善查询性能、索引在什么情况下可能会降低性能,以及怎样为表选择索引。下一节,我们将讨论MySQL的查询优化程序。除了知道怎样创建索引外,了解一些优化程序的知识也是有好处的,因为这样可以更好地利用所创建的索引。某些编写查询的方法实际上会妨碍索引的效果,应该避免这种情况出现。(虽然并非总会这样。有时也会希望忽略优化程序的作用。我们也将介绍这些情况。)
4.1.1索引的益处
让我们从一个无索引的表着手来考察索引是怎样起作用的。无索引的表就是一个无序的行集。例如,图4 - 1给出了我们在第1章“MySQL与SQL 介绍” 中首先看到的ad 表。这个表上没有索引,因此如果我们查找某个特定公司的行时,必须查看表中的每一行,看它是否与所需的值匹配。这是一个全表扫描,很慢,如果表中只有少数几个记录与搜索条件相匹配,则其效率是相当低的。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

關聯式資料庫的規範化理論主要解決的問題是:如何建構適當的資料庫邏輯結構;即把概念結構設計階段設計好的基本實體-關係圖轉換為與選用的資料庫管理系統產品所支援的資料模型相符的邏輯結構。

標題:MySQL中查看表格的資料的語句及具體程式碼範例MySQL是一種開源的關係型資料庫管理系統,它被廣泛應用於各種規模的應用程式。在MySQL中,檢視表格的資料是一個非常基礎的操作,以下將介紹如何透過具體的語句和程式碼範例來實現這項操作。首先,我們將介紹透過MySQL命令列工具查看表格的資料的語句及具體程式碼範例。假設我們有一個名為「employees」的表,以下是通

MySQL是一種常用的關聯式資料庫管理系統,它支援重命名表的操作。通常情況下,重新命名表會帶來一定的風險,因此在執行這個操作時應該非常小心謹慎。在本文中,我們將探討如何在MySQL中實作重新命名表的語句,並提供詳細的程式碼範例。在MySQL中,可以使用ALTERTABLE語句來重新命名表。下面是ALTERTABLE重命名語句的基本語法:ALTERTABLEo

關聯式資料庫是一種資料庫管理系統,它使用關係模型來組織和管理數據,關係模型將資料分成表格,每個表格包含一組記錄,每個記錄包含一組屬性。這些表格之間可以建立關係,以便在多個表格之間共享數據,它是一種強大、一致、完整和安全的資料庫管理系統,可以滿足各種應用程式的需求。

在Oracle資料庫中,設定表格的唯讀權限是非常重要的操作,可以保護資料的安全性並防止誤操作。以下將介紹如何在Oracle資料庫中設定表格的唯讀權限,並提供具體的程式碼範例。首先,我們需要了解在Oracle資料庫中,使用者透過授權取得對錶的權限。表的權限包括SELECT(查詢)、INSERT(插入)、UPDATE(更新)和DELETE(刪除)等操作。在這裡,我們將介

微軟電腦殼是用來保護電腦的外殼,它不僅能夠提供額外的保護功能,還能夠增添裝飾效果。對於那些希望為自己的電腦增加一些個人化元素的用戶來說,微軟電腦殼是一個非常理想的選擇。微軟電腦殼推薦配置表是一個詳細的表格,列出了適用於不同型號和規格的微軟電腦殼的建議配置。我們將詳細介紹微軟電腦殼推薦配置表,並對其中的一些方面進行解釋說明1.適用型號在推薦配置表中,首先要考慮的是微軟電腦殼的適用型號。不同型號的微軟電腦殼可能有不同的尺寸和形狀,所以需要根據電腦型號選擇合適的殼。配置表中會列出適用於不同型號的微

使用MySQL建立推薦系統表實現推薦系統功能推薦系統是一種用於根據使用者的喜好和行為給予使用者個人化推薦內容的系統。在推薦系統中,資料庫是一個關鍵的組成部分,它保存了用戶資料、物品資料和使用者-物品互動資料等資訊。 MySQL作為一種常用的關聯式資料庫管理系統,可以用來建立推薦系統表,並實現推薦系統的功能。本文將介紹如何使用MySQL建立推薦系統表,並透過程式碼範例展示

MySQL建立使用者權限表實作使用者權限管理功能MySQL是一種常用的關係型資料庫管理系統,它提供了強大的使用者權限管理功能。在一個多用戶的資料庫環境中,合理地管理使用者的權限是非常重要的。本文將介紹如何透過建立使用者權限表來實現使用者權限管理功能,並透過程式碼範例來說明。一、建立權限表首先,我們需要建立一個權限表來儲存使用者的權限資訊。權限表的欄位包含使用者ID(user_
