一、索引管理优化
1.整合DDL语句
将索引添加到MySQL表的过程中,可能会引起阻塞,这是由于alter语句的阻塞性。因此可以将多条alter语句整合成一条SQL语句。
2.去除重复索引
重复的索引会有两个影响:
(1)导致DML语句运行变慢,因为要保持数据跟索引的一致性。
(2)数据库磁盘空间变大,从而导致备份之类的操作时间增加。
因此当一个索引出现在别的索引最左边部分时,这个索引就是重复索引,如下图所示:
name1索引被包含在了name2最左边部分,name1这个索引就是重复索引。
二、索引列优化
1.数据类型
bigint 跟 int :自增主键由bigint改为int,能节省磁盘和内存空间。
NOT NULL 跟 NULL : 索引中的列被定义为NOT NULL时,占用更小的空间。
2.列的类型
IP地址:IPv4的地址人们通常使用的是varchar(15)列来存储IP地址。mysql可以使用无符号整数来存储,还提供了inet_aton()和inet_ntoa()来互相转换。这样可以节省空间。
首先,设置IP字段类型为int;
其次,insert时用inet_aton()存储,eg : insert into table values(inet_aton('192.168.1.1'));
最后,查询ip字段时可以用inet_ntoa()显示,eg:select inet_ntoa(ip) from table;