当前位置: 首页 > news >正文

电脑当服务器做网站开发公司外包

电脑当服务器做网站,开发公司外包,安全教育平台作业登录入口,巴中做网站公司1、在进行查询时#xff0c;索引列不能是表达式的一部分#xff0c;也不能是函数的参数#xff0c;否则无法使用索引 例如下面的查询不能使用 actor_id 列的索引#xff1a; #这是错误的 SELECT actor_id FROM sakila.actor WHERE actor_id 1 5; 优化方式#xff1a;…1、在进行查询时索引列不能是表达式的一部分也不能是函数的参数否则无法使用索引 例如下面的查询不能使用 actor_id 列的索引 #这是错误的 SELECT actor_id FROM sakila.actor WHERE actor_id 1 5; 优化方式可以将表达式、函数操作移动到等号右侧。如下 SELECT actor_id FROM sakila.actor WHERE actor_id 5 - 1; 2、在需要使用多个列作为条件进行查询时使用多列索引比使用多个单列索引性能更好 例如下面的语句中最好把actor_id 和 film_id 设置为多列索引。猿辅导有道题详见链接可以让理解更深刻。 SELECT film_id, actor_ id FROM sakila.film_actor WHERE actor_id 1 AND film_id 1; 3、让选择性最强的索引列放在前面。 见MySql最左前缀原则 索引的选择性是指不重复的索引值和记录总数的比值。最大值为 1此时每个记录都有唯一的索引与其对应。选择性越高每个记录的区分度越高查询效率也越高 例如下面显示的结果中 customer_id 的选择性比 staff_id 更高因此最好把 customer_id 列放在多列索引的前面。 复制代码 SELECT COUNT(DISTINCT staff_id)/COUNT(*) AS staff_id_selectivity, COUNT(DISTINCT customer_id)/COUNT(*) AS customer_id_selectivity, COUNT(*) FROM payment; #结果如下 staff_id_selectivity: 0.0001 customer_id_selectivity: 0.0373 COUNT(*): 16049 4、对于 BLOB、TEXT 和 VARCHAR 类型的列必须使用前缀索引只索引开始的部分字符。 前缀长度的选取需要根据索引选择性来确定 5、索引包含所有需要查询的字段的值。具有以下优点 索引通常远小于数据行的大小只读取索引能大大减少数据访问量。 一些存储引擎例如 MyISAM在内存中只缓存索引而数据依赖于操作系统来缓存。因此只访问索引可以不使用系统调用通常比较费时。 对于 InnoDB 引擎若辅助索引能够覆盖查询则无需访问主索引 6、mysql在使用like进行模糊查询的时候把%放后面避免开头模糊查询 因为mysql在使用like查询的时候只有使用后面的%时才会使用到索引 如%ptd_ 和 %ptd_% 都没有用到索引而 ptd_% 使用了索引。 复制代码 #进行全表查询没有用到索引 EXPLAIN SELECT * FROM user WHERE username LIKE %ptd_%; EXPLAIN SELECT * FROM user WHERE username LIKE %ptd_; #有用到索引 EXPLAIN SELECT * FROM user WHERE username LIKE ptd_%; 复制代码 再比如经常用到的查询数据库中姓张的所有人 SELECT * FROM user WHERE username LIKE 张%; 7、在表中建立索引优先考虑where、group by使用到的字段 8、 尽量避免使用in 和not in会导致数据库引擎放弃索引进行全表扫描 比如 SELECT * FROM t WHERE id IN (2,3) SELECT * FROM t1 WHERE username IN (SELECT username FROM t2) 优化方式如果是连续数值可以用between代替。如下 SELECT * FROM t WHERE id BETWEEN 2 AND 3 如果是子查询可以用exists代替。如下 SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t1.username t2.username) 9、尽量避免使用or会导致数据库引擎放弃索引进行全表扫描 如 SELECT * FROM t WHERE id 1 OR id 3 优化方式可以用union代替or。如下 SELECT * FROM t WHERE id 1 UNION SELECT * FROM t WHERE id 3 10、 尽量避免进行null值的判断会导致数据库引擎放弃索引进行全表扫描 SELECT * FROM t WHERE score IS NULL 优化方式可以给字段添加默认值0对0值进行判断。如下 SELECT * FROM t WHERE score 0 11、尽量避免在where条件中等号的左侧进行表达式、函数操作会导致数据库引擎放弃索引进行全表扫描 例如 SELECT * FROM t2 WHERE score/10 9 SELECT * FROM t2 WHERE SUBSTR(username,1,2) li 优化方式可以将表达式、函数操作移动到等号右侧。如下 SELECT * FROM t2 WHERE score 10*9 SELECT * FROM t2 WHERE username LIKE li% 12、当数据量大时避免使用where 11的条件。通常为了方便拼装查询条件我们会默认使用该条件数据库引擎会放弃索引进行全表扫描 SELECT * FROM t WHERE 11 优化方式用代码拼装sql时进行判断没where加where有where加and。 13、建立索引后查询时不会扫描全表而会查询索引表锁定结果 14、在数据库进行DML操作的时候除了维护数据表之外还需要维护索引表运维成本增加 15、选用选择性高的字段作为索引一般unique的选择性最高 16、复合索引选择性越高的排在越前面。左前缀原则 17、如果查询条件中两个条件都是选择性高的最好都建索引 18、 数据类型出现隐式转换时也不会使用索引 让我们对上一个例子中的表增加一个 AGE 索引。 CREATE TABLE test_index_table ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(45) DEFAULT NULL, birthday datetime DEFAULT NULL, address varchar(45) DEFAULT NULL, phone varchar(45) DEFAULT NULL, note varchar(45) DEFAULT NULL, age varchar(11) DEFAULT NULL, PRIMARY KEY (id), KEY NAME_ADDRESS (name,id) USING BTREE, KEY AGE (age) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT283 DEFAULT CHARSETutf8 尝试使用下面的 sql 语句进行查询 explain SELECT * FROM test.test_index_table where age 26 由于表中的 age 是 VARCHAR 类型。而在 sql 语句中我们使用的是数字类型 26。MYSQL 默认会把输入的常量值进行转换以后才进行检索。现在我们通过 explain 看看这个语句的分析结果 19、查看索引使用情况 show status like handler_read%; 20、mysql查询只使用一个索引因此如果where子句中已经使用了索引的话那么order by中的列是不会使用索引的。    因此数据库默认排序可以符合要求的情况下不要使用排序操作尽量不要包含多个列的排序如果需要最好给这些列建复合索引
http://www.hkea.cn/news/14523922/

相关文章:

  • 哪家建设网站成都全网推广哪家专业
  • 珠海哪家做企业网站公司好软件开发者大会
  • 网站头部通用代码实名制认证网站
  • 宁波怎么建网站模板六安网红小杨哥
  • 汤姆叔叔官方网站建设网站建设学习什么
  • 猪八戒网站建设报价网站模板制作教程视频教程
  • 网站建设客户定位做网站wordpress
  • 中国移动网站官网网站制作哪种好
  • godaddy网站建设怎么样法治中国建设网站
  • 外贸推广网站有哪些网站上怎么做支付接口
  • 徐州网站制作哪家好市场营销推广策略
  • 个人做网站最方便的方法广州代做公司网站
  • 哈尔滨网站制作方案互联网保险的风险
  • 广州达美网站建设汕头潮阳网站建设
  • 网站开发需求用什么软件深汕特别合作区事务员待遇
  • 深圳社区网站开发公司网络私人定制网站
  • 网页设计自学视频网站做网站1万多
  • 汽车行业网站建设比较营销型网站建设原则
  • 网站建设费用应该入什么科目wordpress社区模版
  • it行业网站模板.jsp网站开发技术
  • 大良企业网站建设网站空间大小怎么查看
  • 小规模网站开发税率wordpress编辑用户头像
  • 网站制作加盟潇湘书院网站建设的目标
  • 网站的栏目建设在哪里苏州婚庆公司网站建设案例
  • 瑞昌网站建设二手车交易网站怎么做
  • 小型企业类网站开发公司wordpress 商用
  • 专门做外包的网站企业网站主页设计图片
  • 外贸自己建网站电子商务网站建设的案例分析题
  • 湖南网站建设公司 搜搜磐石网络网站维护和网页维护区别
  • 东莞网站设计价格怎么邀约客户做网站