假如mysql資料庫單表有100W行記錄,都有哪些方式加快查詢速度

2025-03-21 15:00:10 字數 2748 閱讀 7506

1樓:愛可生雲資料庫

新增索引或者使用工具,比如apache spark先安裝 apache spark,查詢資料庫的速度可以提公升10倍。

在已有的 mysql 伺服器之上使用 apache spark (無需將資料匯出到 spark 或者 hadoop 平臺上),這樣至少可以提公升 10 倍的查詢效能。使用多個 mysql 伺服器(複製或者 percona xtradb cluster)可以讓我們在某些查詢上得到額外的效能提公升。你也可以使用 spark 的快取功能來快取整個 mysql 查詢結果表。

思路很簡單:spark 可以通過 jdbc 讀取 mysql 上的資料,也可以執行 sql 查詢,因此我們可以直接連線到 mysql 並執行查詢。那麼為什麼速度會快呢?

對一些需顫漏爛要執行很長時間的查詢(如報表或者bi),由於 spark 是乙個大規模並行系統,因此查詢會非常的快。mysql 只能為每乙個查詢分配乙個 cpu 核茄漏來處理,而 spark 可以使用所有叢集節點的所有核。在下面的例子中,我們會在 spark 中執行 mysql 查詢,這個查詢速度比直接在 mysql 上執行速度要快 5 到搜擾 10 倍。

另外,spark 可以增加「叢集」級別的並行機制,在使用 mysql 複製或者 percona xtradb cluster 的情況下,spark 可以把查詢變成一組更小的查詢(有點像使用了分割槽表時可以在每個分割槽都執行乙個查詢),然後在多個 percona xtradb cluster 節點的多個從伺服器上並行的執行這些小查詢。最後它會使用map/reduce 方式將每個節點返回的結果聚合在一起形成完整的結果。

2樓:匿名使用者

假如mysql數帶胡枯陸據庫單表有100w行記錄,都有哪些方式加快查詢速度。

1、合理添蠢敗攔加索引 2、優化資料庫快取 3、優化資料庫io

3樓:網友

1、合理新增索引。

2、優化資料庫快取。

3、優化資料庫io

mysql資料庫如何提高查詢效率,單表記錄數有幾億條,指定索引效率還是很慢

4樓:網友

mysql單表幾條資料,你這麼複雜的sql還能出得來已經很不錯了。可以考慮分表分庫了,mysql單表資料到千萬級別效能就下降,。單表這麼大的資料,怎麼優化都會有點點慢。

mysql資料庫 一張表中有十萬條以上的資料,sql語句必須有 like %$aa% , 怎麼優化能讓查詢速度快一點。

5樓:西門公子慶

sql語句必須有 like %$aa%

怎麼都一樣。因為這種like語句, 索引無效。

6樓:網友

如果一張表直接查,應該沒有辦法了。

假如資料庫中有1000w條資料,要查詢其中的一條,怎麼做速度最快

7樓:老師小喬

這個表有點大了,建議首先進行表的水平分割,比如將資料按日期分別儲存到兩個表中,這就是用儲存控制項換取系效能的提高的做法,然後再在每個表中建立符合需要的索引,進一步提高檢索效能。

8樓:網友

查詢條件用聚集索引篩選,即假設id為聚集索引where id=8901234會立即查出。

mysql 資料庫,表每天會插入30w條資料,該表資料千萬級,查詢效率很慢,建立索引是否利大於弊?

9樓:團隊讀書控

呵呵,我認為可以建立索引,但必須要合理分配io

為什麼:1:索引是建立在表的一列或多個列上的輔助物件,目的是加快訪問表中的資料(加快查詢);

2:通常,通過索引查詢資料比全表掃瞄要快。 當oracle找出執行查詢和update語句的最佳路徑時, oracle優化器將使用索引。

除了那些long或long raw資料型別, 你可以索引幾乎所有的列。 在大型表中使用索引特別有效。

3:雖然使用索引能得到查詢效率的提高,但是我們也必須注意到它的代價。 索引需要空間來 儲存,也需要定期維護, 每當有記錄在表中增減或索引列被修改時, 索引本身也會被修改。

這意味著每條記錄的insert , delete , update將為此多付出4 , 5 次的磁碟i/o . 因為索引需要額外的儲存空間和處理,那些不必要的索引反而會使查詢反應時間變慢。

4:解決方案:

利用分表操作。千萬級的資料必須要用垂直分表操作,這樣每天插入的資料在不同的表中,索引也就在不同的表的索引中,減少插入帶來的效率問題。

索引表空間和資料表空間分開存放。不要把索引和表資料建立在乙個磁碟中,利用兩個磁碟,分別進行io操作,也就是索引表空間和資料表空間徹底分開。提高系統io吞吐量。

會有一定的效果,但不如第乙個的效果好。

10樓:悠然看社會

如果經常查詢肯定要建索引的。索引會佔空間,硬碟夠大的話。擴大就是了。

mysql資料庫查詢好慢怎麼解決

11樓:麥兜範

28萬條資料量不是很大,欄位稍微有點多,如果不加where 條件的話,資料庫判定是查詢所有資料庫,而加了where 條件時,資料庫判定要去詳細的查詢某個資料,所以速度自然會慢,建立索引可以解決您的問題;

create index 索引名 on 表名 (where 條件用到的列名,如有多個就以逗號分隔);

這次在去where 的時候就會快很多。

12樓:吳鐵騎

是不是你的資料庫表中的資料太多啊。

mysql資料庫和access資料庫有什麼區別

mysql和access的區別 mysql特性 很便宜,通常是免費的 網路承載少 查詢 優化 可以簡便的應用程式通過mysql做備份 mysql操縱簡單,易上手,且為各種不同的資料格式提供有彈性的擴充套件介面 odbc access特性 簡單易學,使用方便,開發效率高。mysql對於大多數使用者而言...

mysql怎麼查詢資料庫所有表名

mysql如何進入資料庫檢視所有資料庫表和新建資料庫表一共有以下幾個步驟 第二步 滑鼠點選左上角的 連線 這時會出現一個下拉項,選擇 mysql 第四步 連上資料庫之後滑鼠雙擊左邊的連線名,就可以看見自己的mysql資料庫,然後雙擊點開其中一個資料庫,就可以在右側看見這個資料庫的表了。第五步 這裡滑...

如何在MYSQL資料庫中資料庫,如何在MYSQL資料庫中新建一個資料庫

createusertomidentifiedby 密碼 建立使用者 grantallprivilegesondbname.totom 把dbname庫的所有操作許可權都給tomflushprivileges 重新整理快取,生效 在控制檯根目錄下開啟sqlserver企業管理器,新建sqlserve...