电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

mysql索引VIP免费

mysql索引_第1页
1/19
mysql索引_第2页
2/19
mysql索引_第3页
3/19
Mysql 索引学习 理解MySQL——索引与优化 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6 条记录,DBMS 的页面大小为4K,并存储100 条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4 个页面,如果这10^4 个页面在磁盘上随机分布,需要进行10^4次 I/O,假设磁盘每次I/O 时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。如果对之建立B-Tree 索引,则只需要进行log100(10^6)=3 次页面读取,最坏情况下耗时30ms。这就是索引带来的效果,很多时候,当你的应用程序进行SQL 查询速度很慢时,应该想想是否可以建索引。进入正题: 第二章、索引与优化 1、选择索引的数据类型 MySQL 支持很多数据类型,选择合适的数据类型存储数据对性能有很大的影响。通常来说,可以遵循以下一些指导原则: (1)越小的数据类型通常更好:越小的数据类型通常在磁盘、内存和CPU 缓存中都需要更少的空间,处理起来更快。 (2)简单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂。在 MySQL 中,应该用内置的日期和时间数据类型,而不是用字符串来存储时间;以及用整型数据类型存储IP 地址。 (3)尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL 中,含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。 1.1、选择标识符 选择合适的标识符是非常重要的。选择时不仅应该考虑存储类型,而且应该考虑MySQL 是怎样进行运算和比较的。一旦选定数据类型,应该保证所有相关的表都使用相同的数据类型。 (1) 整型:通常是作为标识符的最好选择,因为可以更快的处理,而且可以设置为AUTO_INCREMENT。 (2) 字符串:尽量避免使用字符串作为标识符,它们消耗更好的空间,处理起来也较慢。而且,通常来说,字符串都是随机的,所以它们在索引中的位置也是随机的,这会导致页面分裂、随机访问磁盘,聚簇索引分裂(对于使用聚簇索引的存储引擎)。 2、索引入门 对于任何DBMS,索引都是进行优化的最主要的因素。对于少量的数据,没有合适的索引影响不是很大,但是,当随着数据量的增加,性能会急剧下降。 如果对多列进行索引(组合索引),列的顺序非常重要,MySQL 仅能...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部