mysql文档摘要续2

mysql优化续:

1:show index from table_name查看索引使用情况其中cardinality基数,即value group索引区分度,当cardinality越小时需要扫描的行数越多,越大是则越小。

2:mysql评价索引扫描数据量非常大时可能会放弃使用,当使用limit时,情况可以改变,mysql会采用索引

3:针对mysql的行格式row format。innodb最新版本采用COMPACT,老版本是REDUNDANT,使用新的格式或减少20%的磁盘空间,相应的会增加cpu时间,在char类型存储utf-8字符时,老版本都是3*N的字节,新版本是N ~ 3*N

4:在低于8KB的字段存储是尽量使用varchar而不是blob,在group by 和order by可以产生临时表,在没有blob字段的情况下临时表可以使用memory 引擎。

5:在有许多并不常用的字段表时,通常建议将这些字段拆开到另外的表中,通过join去处理,特别是blob、text类型时。

6:optimizer_switch该参数可以查看mysql采用的一些优化策略,如MRR,ICP等是否打开,都可以手动设置

7:index hints 可以使用use index ,force index, ignore index来影响mysql的所以选择

8:innodb_buffer_pool可以存储select、insert、update等操作数据(包括索引跟数据库数据),来提升性能,采用LRU算法替换相应的block,将数据块插入到list中间默认大概在5/8左右可以手动调整,这样可以防止数据频繁刷新。

9:myisam key_cache存储索引数据,数据库数据则由本地的操作系统文件系统缓存,myisam也可以采用Midpoint Insertion Strategy,在key_cache不可用时(如重建)mysql会启用本地的文件系统缓存(当然性能上会有所降低)。

10:mysql最左匹配原则有个非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>,<,between,like)就停止匹配。

11:索引列不能参与计算,b+树中存的都是数据表中的字段值,应用函数显然成本太大。

mysql character set & collation:

character set 字符集,字符集包括ascii、gb2312、big5、unicode等,字符编码包括ascii编码、gb2312编码、gbk、utf8,在mysql里面character set 代表字符集编码。

collation:校对集,即用于指定数据集如何排序,以及字符串的比对规则。

存储方面:character_set_server 、character_set_database、character_set_table、character_set_column一级一级下来细分,同时对应相应的collation。

连接方面:character_set_client、character_set_connection、character_set_results.客户端通过character_set_client发送数据,服务器通过将数据转换成character_set_connection所设,最后服务器将结果集按照character_set_results返回给client。如果出现值为null,则不转换,并且转换时有可能发生错误。

 

转载于:https://www.cnblogs.com/hike2008/p/4721659.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值