亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

面試寶典系列-mysql性能優化方案

標簽:
SQL Server

表结构优化:

1、根据自己的业务选择合适的引擎

2、表设计时尽量符合第三范式

第一范式:表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库就自动的满足。

第二范式:表中的记录是唯一的, 就满足第二范式, 通常我们设计一个主键来实现

第三范式:表中不要有冗余数据, 即表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放.

为什么说尽量符合?  因为有些系统为了提高运行效率,就必须降低范式标准,适当保留冗余数据。

3、表的字段尽可能使用NOT NULL

4、如果知道字符串固定长度,那么就用char型,不要用varchar型

5、主从分离,读从库,写主库

6、当表的字段过多时,进行垂直分割;如果数据过多时,进行水平分割

sql优化:

1、不使用Select *,只查询需要的字段,查询所有占用内存

2、多表连接时,尽量小表驱动大表,即小表 join 大表

3、插入多条数据时,尽量组合成一天sql批量插入

4、使用存储过程

5、使用枚举或整数代替字符串类型

6、开启慢查询,对慢sql使用explain或desc进行性能分析,并优化sql

索引优化:

索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描

应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描

值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段

字符字段只建前缀索引

字符字段最好不要做主键

不用外键,由程序保证约束

尽量不用UNIQUE,由程序保证约束



作者:JAVA高级架构开发
链接:https://www.jianshu.com/p/718f038587a9


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消