PHP MYSQL SQL语句优化

select * from cdb_members inner join cdb_memberfields on cdb_members.uid=cdb_memberfields .uid inner join supe_userfields on cdb_members.uid=supe_userfields.uid inner join cdb_usergroups on cdb_members.groupid=cdb_usergroups.groupid inner join supe_userspaces on cdb_members.uid=supe_userspaces.uid inner join supe_userspacefields on cdb_members.uid=supe_userspacefields.uid order by cdb_members.uid desc limit 0,500

请问各位高手这个SQL语句还能不能进行更好的优化?

在执行的时候会很慢~~~

你的语句是正确的,速度慢两种可能:

一、是索引不对,你所有的关联字段,应该在相应表中有唯一索引,最好是主键,例如:
cdb_members.uid
cdb_memberfields .uid
supe_userfields.uid
cdb_members.groupid
cdb_usergroups.groupid
supe_userspaces.uid
supe_userspacefields.uid
如果以上的表没有主键,请设置相应字段为主键,如果有其他的主键而且是必须的,那么在上面的字段建立唯一索引。

二、数据量过大,如果你cdb_members的记录很多,远远大于500条,可以考虑改变程序,先重此表里面获取500条数据,然后在循环里面每条数据库关联获取其它表的信息,这样就不需要先对五个表做链接。
温馨提示:内容为网友见解,仅供参考
无其他回答

php+mysql优化,百万至千万级快速分页mysql性能到底能有多高
通过简单的变换,其实思路很简单:1)通过优化索引,找出id,并拼成 "123,90000,12000" 这样的字符串。2)第2次查询找出结果。 小小的索引+一点点的改动就使mysql 可以支持百万甚至千万级的高效分页! 通过这里的例子,我反思了一点:对于大型系统,PHP千万不能用框架,尤其是那种连sql语句都看不到的框架!因为开始对于我...

PHP执行批量mysql语句的解决方法
(mysqli_next_result($mysqli)=== false){ echo mysqli_error($mysqli);echo "\\r\\n";break;} } mysqli->close();这样的话当sqls语句中任意一条有错误的话,程序就会跳出这个错误。

优化MYSQL数据库的方法?
(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引 (4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句 ...

mysql数据库的优化方法?
真实案例 案例一:大学有段时间学习爬虫,爬取了知乎300w用户答题数据,存储到mysql数据中。那时不了解索引,一条简单的“根据用户名搜索全部回答的sql“需要执行半分钟左右,完全满足不了正常的使用。案例二:近线上应用的数据库频频出现多条慢sql风险提示,而工作以来,对数据库优化方面所知甚少。例如一...

轻松掌握mysql中运行sql语句的方法与技巧mysql下运行sql
SQL语句即结构化查询语言,是一种标准的数据库语言,用于管理、操作和查询关系型数据库。操作关系型数据库需要使用SQL语句,它可以实现各种查询、插入、更新和删除操作。MySQL支持大多数标准SQL语句,如SQL92标准中的常见语句,如SELECT、INSERT、UPDATE和DELETE。MySQL还提供了一些特定于其环境的扩展和优化的...

MySQL中insert语句的使用与优化教程
使用PHP脚本插入数据时,可通过mysql_query()函数执行SQL命令。例如,程序会接收用户输入,包括教程标题、作者和提交日期,并插入到数据库中,同时确保输入数据的安全性。为了提升插入性能,可以考虑优化SQL语句。例如,一条INSERT语句可以插入多条数据,如`INSERT INTO insert_table (`uid`, `content`, `...

php批量执行sql语句怎么写?
php中利用数组用Mysql_query批量执行SQL语句。参考示例如下:思路:这里采用一个数组.用explode 函数,将$query语句按照”;”炸开,然后循环执行即可:query = 'delete from ecs_goods_attr where attr_id=11 and goods_id=22;Insert into ecs_goods_attr (goods_attr_id,goods_id,attr_id,attr_...

面试官:MySQL是如何执行一条查询语句的?
ManagementServeices&Utilities:系统管理和控制工具,包括备份恢复、MySQL复制、集群等; ConnectionPool:连接池,管理需要缓冲的资源,包括用户密码权限线程等等; SQLInterface:用来接收用户的SQL命令,返回用户需要的查询结果; Parser:用来解析SQL语句; Optimizer:查询优化器; ...

在MySQL语句执行SQL语句,绝对成功,但是在PHP里执行报错。
你应该把这个插入代码做成存储过程,把数据作为参数,不需要每次插入数据都生成一个存储过程。exec是执行单条语句的,应该只执行了第一条,后面多的都没有执行。你可以看下数据库里是否成功插入了数据

PHP Mysql查询除了自己以外的其它所有数据库怎么写?
可以添加一个并且条件,例如myid是xxx,那么SQL语句如下:sql = "select * from ... where (现在的所有条件在这里并在其外添加括号) AND myid!=xxx;"

相似回答