程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 通過分區(Partition)提升MySQL性能(4)

通過分區(Partition)提升MySQL性能(4)

編輯:關於MYSQL數據庫

| c3 | date | YES | | NULL | |


+-------+-------------+------+-----+---------+-------+


3 rows in set (0.03 sec)


MySQL> alter table part_tab drop column c2;


Query OK, 8000000 rows affected (42.20 sec)


Records: 8000000 Duplicates: 0 Warnings: 0


MySQL> desc part_tab;


+-------+---------+------+-----+---------+-------+


| FIEld | Type | Null | Key | Default | Extra |


+-------+---------+------+-----+---------+-------+


| c1 | int(11) | YES | | NULL | |


| c3 | date | YES | | NULL | |


+-------+---------+------+-----+---------+-------+


2 rows in set (0.00 sec)


MySQL> select count(*) from part_tab where


-> c3 > date '1995-01-01' and c3 < date '1995-12-31';


+----------+


| count(*) |


+----------+


| 795181 |


+----------+


1 row in set (0.34 sec)

  在設計上去掉了VARCHAR字段後,不止是你,俺也發現查詢響應速度上獲得了另一個90%的時間節省。所以大家在設計表的時候,一定要考慮,表中的字段是否真­正關聯,又是否在你的查詢中有用?

  補充說明

  這麼簡單的文章肯定不能說全MySQL 5.1 分區機制的所有好處和要點(雖然對自己寫文章水平很有信心),下面就說幾個感興趣的:

  支持所有存儲引擎(MyISAM, Archive, InnoDB, 等等) 對分區的表支持索引,包括本地索引local indexes,對其進行的是一對一的視圖鏡像,假設一個表有十個分區,那麼其本地索引也包含十個分區。

  關於分區的元數據Metadata的表可以在INFORMATION_SCHEMA數據庫中找到,表名為PARTITIONS。

  All SHOW 命令支持返回分區表以及元數據的索引。 對其操作的命令和實現的維護功能有(比對全表的操作還多):

ADD PARTITION
DROP PARTITION
COALESCE PARTITION
REORGANIZE PARTITION
ANALYZE PARTITION
CHECK PARTITION
OPTIMIZE PARTITION
REBUILD PARTITION
REPAIR PARTITION
站在性能主導的觀點上來說,MySQL
5.1的分區功能能給數據性能帶來巨大的提升的同時減輕DBA的管理負擔,如果分區合理的話。如果需要更多的資料可以去http://dev.MySQL.com/doc/refman/5.1/en/partitioning.Html或
http://forums.MySQL.com/list.PHP?106獲得相關資料。

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