提高表查询的效率最好的办法是添加所有,不要怕冗余数据。
成都创新互联公司专注于企业营销型网站建设、网站重做改版、尼元阳网站定制设计、自适应品牌网站建设、H5建站、电子商务商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为尼元阳等各大城市提供网站开发制作服务。
比如,一个表就一列name。存的是英文名字有两千万条数据。
如果直接查一个名字会很慢,这样我们就可以建冗余列,比如number字数列,和head_letters第一个字母列。
这样我们就可以建立多行索引(这里就不集体说怎么写了)。
在查表的时候就可以通过number和head_letters和name。三个添加查询。
这样就可以提高查询效率。
rar只是人家压缩的而已,要想恢复先把以前的库文件都拷贝出来,就是删除掉,这样重装mysql才不会出错,把以前的MySQL文件全部清除,然后装个新的,这个时候MySQl可以正常启动了,然后在新的MySQL里建一个和以前同名的库,然后停止MySQL服务,把以前库的*.frm文件拷回原来的目录,还有data目录下的 ibdata1文件也要覆盖。然后启动MySQL服务,我试过的可以的,遇到小问题的话上网找一找,人家吧你喂得饱饱的你下次也不一定能记住
设置innodb 表的 压缩
第一,mysql的版本需要大于5.5
第二,设置innodb_file_format=barracuda
第三,create table或者alter talble 增加 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;(默认的key_block_size=16)
根据经验,一般压缩比例可以达到30%-40%
.create or replace view 语句。//如视图存在则覆盖,如不存在则创建。
create or replace view algorith=temptable view student_view(nid,id,name) as select id,pid,title from student;
633M -rw-rw---- 1 mysql mysql 632M Oct 25 17:51 url_comment_0.ibd
12K -rw-rw---- 1 mysql mysql 8.7K Oct 25 18:16 url_comment_0.frm
178M -rw-rw---- 1 mysql mysql 178M Oct 25 18:53 url_comment_0.MYD
99M -rw-rw---- 1 mysql mysql 98M Oct 25 18:53 url_comment_0.MYI结论:由上面数据可知innodb plugin能有效压缩innodb数据文件,近50%,另外相同的情况下使用MyISAM表也可较大的减少数据大小(178+99633M).
当然实际的压缩比例和表的结构等有关,如字段为varchar会有较大的压缩比,而int类型压缩率会低些~
其它的压缩技术还可以使用myisampack,ARCHIVE,infobright等技术,但是这些技术常是用于数据表归档操作,令数据表有较大压缩比,但有不能进行update,insert操作等缺点,不在本文讨论范围~
表压缩可以在创建表时开启,压缩表能够使表中的数据以压缩格式存储,压缩能够显著提高原生性能和可伸缩性。
压缩意味着在硬盘和内存之间传输的数据更小且占用相对少的内存及硬盘,对于辅助索引,这种压缩带来更加明显的好处,因为索引数据也被压缩了
压缩对于硬盘是SSD的存储设备尤为重要,因为它们相对普通的HDD硬盘比较贵且容量有限。