mysql手记
myisam innoDB是mysql常用的存储引擎 MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。 InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间
myisam innoDB是mysql常用的存储引擎
MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
innodb的索引有两种,叫第一索引,以及第二索引。有的也叫聚集索引与辅助索引。其中聚集索引存放了表中的记录,查询的时候不需要回表扫描,同时索引项较大;辅助索引存放的位置信息,需要回表扫描,相对来说,I/0 次数会增加。
查询的时候最好能够从索引中取得数据,减少回表,相对来说离散的 I/0,
MYISAM 没有聚集索引。存放的记录的物理位置
OLTP (联机事务处理)故名思议主要强调事务,如(银行存款的修改,用户订单等)面向应用
OLAP (联机分析处理) 主要作为数据仓库,面向决策,分析等。
联接算法:
nested-loops join 主要思想是:从外表中拿出一个数据与内表的每一条数据比较,O(M*N) 。当有索引时:内表只需要比较索引的高度,近似于O(M*H)
Block nested--loops join 主要思想 是:改进 nested-loops join 外部表每次去一定的数据到缓冲区,比如10条,然后这10条记录在跟内部表的数据比较,减少内部表的扫描次数。
Hash join 只能== 以及!=,不能部分比较(为何?,hash是对整个字符串hash) 主要思想是:将外部表的数据放到join buffer,然后hash,这一阶段
为build;probe阶段,从内表中取出数据hash,比较。
基本的测试:
create TABLE myorder
( id int not null auto_increment,
userid int not null ,
orderdate date,
comein int DEFAULT 0,
comeout int DEFAULT 0,
PRIMARY key (id)
);
INSERT into myorder VALUES("","11123940","2014-05-10","","50");
SELECT userid ,orderdate ,comein -comeout as rest
from myorder
GROUP BY userid ,orderdate;
create index myorderindex on myorder(id,userid);
explain SELECT userid ,orderdate ,comein -comeout as rest
from myorder
GROUP BY userid ,orderdate;

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Big data structure processing skills: Chunking: Break down the data set and process it in chunks to reduce memory consumption. Generator: Generate data items one by one without loading the entire data set, suitable for unlimited data sets. Streaming: Read files or query results line by line, suitable for large files or remote data. External storage: For very large data sets, store the data in a database or NoSQL.

MySQL query performance can be optimized by building indexes that reduce lookup time from linear complexity to logarithmic complexity. Use PreparedStatements to prevent SQL injection and improve query performance. Limit query results and reduce the amount of data processed by the server. Optimize join queries, including using appropriate join types, creating indexes, and considering using subqueries. Analyze queries to identify bottlenecks; use caching to reduce database load; optimize PHP code to minimize overhead.

Backing up and restoring a MySQL database in PHP can be achieved by following these steps: Back up the database: Use the mysqldump command to dump the database into a SQL file. Restore database: Use the mysql command to restore the database from SQL files.

How to insert data into MySQL table? Connect to the database: Use mysqli to establish a connection to the database. Prepare the SQL query: Write an INSERT statement to specify the columns and values to be inserted. Execute query: Use the query() method to execute the insertion query. If successful, a confirmation message will be output.

One of the major changes introduced in MySQL 8.4 (the latest LTS release as of 2024) is that the "MySQL Native Password" plugin is no longer enabled by default. Further, MySQL 9.0 removes this plugin completely. This change affects PHP and other app

To use MySQL stored procedures in PHP: Use PDO or the MySQLi extension to connect to a MySQL database. Prepare the statement to call the stored procedure. Execute the stored procedure. Process the result set (if the stored procedure returns results). Close the database connection.

Creating a MySQL table using PHP requires the following steps: Connect to the database. Create the database if it does not exist. Select a database. Create table. Execute the query. Close the connection.

Oracle database and MySQL are both databases based on the relational model, but Oracle is superior in terms of compatibility, scalability, data types and security; while MySQL focuses on speed and flexibility and is more suitable for small to medium-sized data sets. . ① Oracle provides a wide range of data types, ② provides advanced security features, ③ is suitable for enterprise-level applications; ① MySQL supports NoSQL data types, ② has fewer security measures, and ③ is suitable for small to medium-sized applications.
