《mysql高性能》系列2:选择合适的数据类型
摘要:1 选择数据类型的几个原则 选择更小的数据类型比如,存储城市id可以用int,那就不要使用bigint了。更小的数据类型占用的磁盘、内存和CPU缓存都会比较小,处理起来也更快。但是,要记得不要低估需要存储的值的范围。 简单的数据类型更好例如,能用整型存储ip地址,就不要用字符存储ip地址。因为,字符
阅读全文
《mysql高性能》系列3:创建合适的索引
摘要:1 概述 索引可以认为是存储引擎建立的一种数据结构,用来快速的根据查询条件来找到所需要的数据。由于数据一般存放在磁盘中,每次访问磁盘的时间都会比较长,因此,为了减少对磁盘的访问次数,存储引擎一般使用B-树结构来保存索引。索引可以减少服务器层需要扫描的数据量,可以帮助服务器避免排序,将随机IO变为顺序
阅读全文
《mysql高性能》系列4:字符集和校对
摘要:对于字符串类型,有一个字符集的概念在里面。字符集是指,一种从二进制编码到某类字符符号的映射。例如,中文符号,在计算机底层用二进制存储,那么,就需要有一个映射表,来表示哪个中文符号用哪个二进制编码来表示。校对,是指一组用于某个字符集的排序规则。 1 mysql如何使用字符集 只有基于字符的值才有字符集
阅读全文
《mysql高性能》系列1:mysql总体构架
摘要:1 mysql构架 mysql构架可以分为三层,分别是客户端、服务层和存储引擎层,如下图所示。 客户端可以认为是提供给用户使用的一个工具,方便用户使用,同时,提供了连接管理、授权认证和安全的功能。比如,对于每一个客户端发过来的请求,服务层都会从线程池中取出一个线程来处理请求。客户端连接到服务层时,需
阅读全文