您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页MySQL数据库优化技术

MySQL数据库优化技术

来源:榕意旅游网
信息与电脑2016年第12期China Computer&Communication数据库技术MySQL数据库优化技术李仕伟1 周 坤1 刘新蕊2 李宝林1(1.西华师范大学计算机学院,四川 南充 637000; 2.四川华腾公路试验检测有限责任公司,四川 成都 610000)摘 要:MySQL数据库是开源数据库之一,它拥有良好的运行效率,如何进一步提高MySQL数据库运行效率是数据库应用领域面临的问题之一。影响MySQL执行效率的因素涉及很多方面,笔者将从索引技术、数据库设计结构优化和数据库语句优化等方面对数据库进行优化。关键词:数据库优化;索引技术;运行效率中图分类号:TP311.138  文献标识码:A  文章编号:1003-9767(2016)12-173-021 基于索引的数据库优化技术研究果为empty或者0,因为null需要更多的额外空间,在进行对数据库进行优化主要从数据表(table)的索引技术入比较时,还需要进行转化,程序将会显得更为复杂。手,首先从是否启用索引(type)、索引名称key和查询影日期字段一般采取TimeStamp,用整型来标记,这样在响的数据表行数k入手。根据上述描述可以得出,系统数据格式转化时会很方便,IP地址一般采用整型来存放,这样可优化的结果为:以方便做比较。μ(table)=type*g(key)+e(k) (1)在数据库表设计的过程中,表的字段能采取固定长度的在数据库索引字段方面,特别是数据表的查询方面,主一般都必须设置成固定长度,如果一张表中没有varChar、要从如下几个方面入手,首先是数据表的查询匹配条件,一Text和Blob类型字段,该表称为“固定长度静态表”,因般来说,数据表查询主要涉及到where条件、排序order by为查询固定长度静态表的引擎会比普通表宽很多,如果字段条件、条件组合查询和符合索引查询以及符合的链接查询等。不是定长,每次找下一条记录时,必须找到数据表下一条主在查询效率方面,提高查询速度至关重要,在数据库键的入口。但该种类型的表有一个缺陷,就是浪费空间。此设计时一般只在主键和作为条件查询频率高的字段上进行索时不妨在数据库设计时采取垂直分割技术,可以把表分割成引,而在其他字段上尽量不设置索引,因为一个表设置索引为两个,一个是定长的,一个则是不定长的。过多反而会造成数据库查询效率大大降低。根据上文查询垂直分割其实就是对表中字段进行正向投影,根据具体语句分析,可知必须保证所有索引字段必须在where、on、需求和操作的业务逻辑把一张表中的字段变成几张表,这样可order by、group by和like等条件查询语句中,而对于那些数以降低表的复杂度和减少传输数据量,从而达到优化的目的。据量不大并且查询次数不频繁的字段可以不加索引。假设用户表tbl_user(包括用户ID、用户姓名、用户密码、用户昵称、用户电话号码、用户性别、用户常用地址等),2 基于数据库设计的优化技术在这样一张表中,可以把它拆分成两张表,一张用于注册服在数据库设计上,有很多细节值得注意。首先,当数据务和登录服务的用户登录信息表(包括用户ID、用户姓名、表中某个字段为Enum类型时,尽量不要使用Varchar类型,用户密码),另一张为用户基本信息表(包括用户ID、用一般使用Tinyint类型,比如日常所使用的性别字段(男、女)、户昵称、用户电话号码、用户常用地址等)。这样分出去的学院、班级等的编号都可以采取这种方式。表只要不经常进行连接操作就可以,否则也会降低数据的查在字段设计过程中,尽量少用null值,可以采取默认结询效率。作者简介:李仕伟(1991-),男,汉族,四川雅安人,硕士。研究方向:计算机应用技术。周坤(19-),男,汉族,四川遂宁人,硕士。研究方向:计算机应用技术。刘新蕊(1987-),女,汉族,四川成都人,硕士。研究方向:计算机应用技术。李宝林(1976-),男,汉族,四川成都人,副教授。研究方向:物联网。—   173   —2016年信息与电脑6下-正文.indd 1732016/9/12 11:16:22数据库技术信息与电脑China Computer&Communication2016年第12期在数据库表的操作上,如何避免因为锁表问题而出现insert table_name(field1,field2,…,filedn)宕机尤为重要,因为在同一个系统中执行一个大的写操作values(v11,v12,…,v1n),(v21,v22,…,v2n),…,(vm1,vm2,…,vmn)(delete、update和insert)时,一定要注意尽量细化写操作,根据上文对数据库的具体优化策略,系统对优化前后因为在服务器程序中,如果有太多子进程、线程和数据库连的数据库查询和操作的结果做了相关性能测试,测试条件为接,这样会导致服务资源被大量占用,假如有一个表因为这win7操作系统、内存8G、CPU 2.60GHZ,对全校3万多学些问题被锁上20秒钟,对于一个访问量大的平台,就有可生数据进行统一综合插入、查询和其他操作,分别从数据库能让平台崩溃,甚至于宕机。假设需要批量删除或者增加,的查找和写入入手进行相关测试,测试结果如表1所示:最好的办法就是做几条,就休息一段时间,这样就会大大降表1 事务长度统计表低锁表问题出现的概率。操作类别1000030000在数据库引擎上也要做出正确的选择,myisam和innidb优化前优化后优化前优化后各有自己的特点,myisam适合查询量较大的应用,对于写操查询花销时间(ms)559065作支持不足,而innodb相对比较复杂,对于写操作比较频繁新增花销时间(s)2201800455的操作,它有自己的优势,比如支持行锁、事务等。4 结 语3 基于数据库的操作优化本文介绍了MySQL数据库优化技术,可以从索引技术、数据库设计结构优化和数据库语句优化等方面对数据库进行在联合查询方面,为了确保查询效率的提高,首先要尽优化,提高MySQL数据库运行效率。在数据库性能优化上量把条件查询放到子查询中,并且要求数据类型必须一致,有很多方法和技巧值得总结,作者下一步将从数据库设计结如果数据类型不一致,会因为隐含的数据转换而增加开销。构、数据索引等方面进行进一步优化,希望能够提出更有建其中顺序最好是按照表字段顺序进行。设性的意见。注意:在查询的语句中,只有最左边的列出现在where条件中,才有可能走索引。下面列出从用户表中找出用户名和密码相符合的语句:参考文献语句1为Select*from tbl_user where username [1]吴沧舟,兰逸正,张辉.基于MySQL数据库的优化[J].=‘admin’ and pwd=‘pwd’;电子科技,2013(9):182-184.语句2为Select username,pwd from tbl_user where [2]李学强.基于MySQL的数据库系统并发控制及自优username=‘admin’ and pwd=‘pwd’limit 1。化研究[D].成都:成都理工大学,2007.从语句1和语句2中明显可以看出,语句2的效率明显[3]孙辉.MySQL查询优化的研究和改进[D].武汉:华优于语句1。中科技大学,2007.当多个表联合查询时,首先要确定表与表之间连接字段[4]王威.MySQL数据库源代码分析及存储引擎的设计是否被索引,因为这直接关系到数据库内部是否会启动SQL[D].南京:南京邮电大学,2012.语句的优化机制,另外,要确保连接字段必须是相同类型、[5]魏敏.中小企业MySQL数据库性能的优化[J].网络相同字符集。安全技术与应用,2014(6):56.在数据库查询的过程中,尽量避免Select*出现,因为[6]乔洪宇.分布式数据库中间件驱动模块的设计与实现查询的数据越多,数据库服务的负担就越大,特别是数据库[D].哈尔滨:哈尔滨工业大学,2014.服务器和Web服务器分开的话,还会加重网络传输负载。[7]杜源.一种深入解决MySQL数据库优化方案[J].电数据表写优化,在数据表insert语句中,最好用一行多脑知识与技术,2015(7):4-6.值的方式,尽量少采取一行只查询一条记录的方式,比如:[8][作者不祥].大型数据集的MySQL优化[J].电脑编程技巧与维护,2016(14):5.—   174   —2016年信息与电脑6下-正文.indd 1742016/9/12 11:16:22

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务