优化的意义:
优化成本:硬件>系统配置>数据库表结构>sql及索引
优化效果:硬件<系统配置<数据库结构<sql及索引
一、使用索引 1.单表索引建议控制在5个以内 2.单索引字段数不允许超过5个因为字段超过5个时,实际已经起不到有效过滤数据的作用了。 3.禁止在更新十分频繁、区分度不高的属性上建立索引,因为更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能。 4.性别”这种区分度不大的属性,建立索引是没有什么意义的,不能有效过滤数据,性 能与全表扫描类似。 5.建立组合索引,必须把区分度高的字段放在前面,因为能够更加有效的过滤数据。
二、SQL使用规范优化 1.禁止使用SELECT *,只获取必要的字段,需要显示说明列属性。
1.1读取不需要的列会增加CPU、IO、NET消耗。 1.2不能有效的利用覆盖索引。 2.禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性。 2.1容易在增加或者删除字段后出现程序BUG。 3.禁止使用属性隐式转换。 3.1 SELECT uid FROM t_user WHERE phone=13812345678 会导致全表扫描,而不 能命中phone索引。 4.禁止在WHERE条件的属性上使用函数或者表达式。 4.1SELECT uid FROM t_user WHERE from_unixtime(day)>='2019-07-15' 会导致全 表扫描。 4.2正确的写法是:SELECT uid FROM t_user WHERE day>= unix_timestamp('2019-07-15 00:00:00')。 5.禁止负向查询,以及%开头的模糊查询。 5.1 负向查询条件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,会导致全表扫描。 5.2 %开头的模糊查询,会导致全表扫描。 6.禁止大表使用JOIN查询,禁止大表使用子查询。 6.1会产生临时表,消耗较多内存与CPU,极大影响数据库性能。 7.禁止使用OR条件,必须改为IN查询。 7.1旧版本Mysql的OR查询是不能命中索引的,即使能命中索引,为何要让数据库耗费 更多的CPU帮助实施查询优化呢? 8.应用程序必须捕获SQL异常,并有相应处理 总结:大数据量高并发的互联网业务,极大影响数据库性能的都不能用哦。
回答他还不简单你给他说您好:首先呢10万条数据的表是算是比较小的表了,如果数据量达到千万和亿的话那我可以根据特定字段设置分区,然后在非分区字段建立索引,查询的时候走索引如果就只有10万数据的话就不用分区了建立索引就可以.设计好表结构后关键的是sql的优化.当然那种很简单的优化,象什么>=3用>4之类的我就不说了sql优化比较明显的就是把结果集最少的塞选条件的表放后面,将中间表作为基础表.索引上不用运算符等!如果效果不理想就查看执行计划分析后进一步优化估计有些菜比面试官被你一弄他就昏了然后你可以鄙视下他就你那水平还考我优化你自己会多少啊.开玩笑的哈.和他吹吹得他觉得你比他还牛比然后你可以给他说说共享池PGA数据块大小啊操作系统的命中率和垃圾存储过程行了他不要你都难了如果你是面试初级程序员的话
到此,以上就是小编对于sql效率优化的问题就介绍到这了,希望介绍的3点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。
sqlserver如何导入excel数据如何能把excel大量数据快...
Ubuntu系统下可以做什么1+xweb中级考核内容包括什么Ub...
五张表关联查询语句SQL怎么写从多个表中查询数据的sql语句SQL一...
sql注入的攻击原理是什么sql注入属于什么攻击sql注入解决办法s...
数学问题复合函数有没有同奇异偶这个性质奇异函数平衡原理奇异函数平衡法...
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )
参数
''string_replace1''
待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。
''string_replace2''
待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。
在SQL Server中,REPLACE函数用于替换字符串中出现的指定子字符串。它接受三个参数:原字符串,要被替换的子字符串和替换后的子字符串。
该函数会查找原字符串中的所有匹配项,并将其替换为指定的字符串。如果原字符串中不存在要替换的子字符串,则不会发生任何更改。使用REPLACE函数可以轻松地进行字符串替换操作,例如将某些特定字符替换为其他字符或将一部分文本替换为其他文本。这在数据清洗和字符串处理中非常有用。
12。replace('string" class="zf_thumb" width="48" height="48" title="SqlServer中REPLACE函数的使用,sql替换字符串函数" />