Someone asked recently ( Yes , Not for advice ) How do I learn database ? What to learn ? Let me talk about some personal thoughts .
In fact, my database knowledge is not very solid , open-armed .

When I learned this thing, some god told me “ learn sql server” I'm not afraid to go around the world . in fact , In recent years, if only sqlserver It's scary everywhere .

reason ?

1, What if government software , It's not as high as the Internet , But the amount of data storage is really huge , Let's think about financial data , Provident fund data , Data of Civil Affairs Bureau, etc , And a lot of data can't be cached , Must be calculated in real time , When sql2008 Not yet , It's not as good as big data computing oracle( Contemporaneous Edition )

2, For some reason ( you'll see ), The government rarely agrees to use it windows Server platform , Metropolitan use unix or linux platform , That's the decision sqlserver perhaps .net Apps are hard to sell ( Of course not at all , The software of some local departments is still OK , Don't even think about confidential data )

3, For enterprise projects , Many small and medium-sized enterprises in order to save costs and want to have the integrity not to use piracy , that mysql It's their best choice .

4, For your own website , If you don't want to spend a lot of money to buy independent servers in the early stage , use mysql It's the right way , It's cheap and easy to use , The most important thing is that there is not so much data and popularity in the early stage, so we need to go to the advanced database .

In fact, I personally think that , At least 1-2 A database is necessary , for example mysql and oracle, as for sqlserver It's not that it's simple , It's most of Microsoft's stuff
( Not all ) It has done a better job in user experience and ease of learning ( Easy to learn is both advantages and disadvantages , The disadvantage is that when something goes wrong, it's hard to find the root cause )

Here are a few suggestions on how to play with the database .

Learning in a different way

One ,
Step by step learning is not recommended , Because you learn this way , Others learn the same way , And everyone's ability to understand , Technical basis , memory , The surrounding environment and the degree of hunger are different , These factors directly affect your learning speed .

If everyone is on the same starting line , It is not advisable to use the same learning method

Two , Force yourself

Simulation project learning is the best way for me .

First, you need to understand the basic grammar , for example select insert update wait ( There are still some , I don't list them here )

For example, we create a new news table called news , It contains id,title,content(text type ),addtime,clickcount 5 Fields .

And then by hand insert into This watch 50 10000 pieces of high simulation data , Note that 50 The data of news content field must be large ( as "111,aaa, Big big "
It's better to wash and sleep with such test data ).

Then make a page , Show the details of a news item , Display in the right sidebar (1, Related news 2, Popularity ranking 3, News in two days Etc 10 strip )

(1) And then you'll find out , It's not easy to get data select * from surface where
id=X, You will need to learn how to create a field index , How to add redundant fields to the table , You'll also find that when the news sheet is very large , Every time the user clicks the news, if update This watch clickcount The page is slow , Your laptop fan is very hot .

(2) If you need to be more complex , You will find it better to use the view , Or it is more efficient to update some data with stored procedures , Then you'll find that you have to use transactions to add news . So you are forced to learn this knowledge .

(3) Go further , You'll find your own news pages ugly and ugly , So I forced you to learn css and html and jquery

(4)
Then you extend the data in the table to 2000 Over 10000 , You'll find that some of the features are not really a single list . It seems that you have to know the partition and even the table of the database. What's more, you will find that distributed deployment is also necessary .
You'll also learn to use databases sql Which one does the query analyzer analyze sql Statements account for a lot of performance . Even different sql Some statements consume more memory , And there are sql Words let you cpu Up to 100%.

therefore , I personally think you learned 1 And then do the test project , Common needs 2 About months to master a database knowledge , If you use synchronous self abuse while learning, it is likely to save time 20%-30% above , And let you master more solid .

That's why some computer science graduates are not as good as those who change professions .

summary :

of course , technology ( This mainly refers to development related ) Achieve a high level
In fact, it is the collision of mathematical knowledge and natural and social knowledge , It doesn't matter much to do with programming languages . But database knowledge must be mastered , No matter what kind of application you do , As long as you need to store data, you have to understand the database .


If you want to learn more about databases as a hobby , So you can start with data structures , Learn more about how databases work , of course mysql It's all open source , Learning thought is very good , Of course, I've never seen it ( Because they can't understand and have no economic strength to study ).


If you want to develop a relational database before you become a God , That may not be realistic . The premise of playing this kind of thing in our country is to have money , Then we can talk about technology , On team , On products , Or you'll be stuck in the mud .

There is another word , Well, most of the programmers who make money are forced out of the context of specific current events , There is no genius in this area .

The above is my opinion , opinions differ . It's not right on any occasion .

Technology
©2019-2020 Toolsou All rights reserved,
uboot set up nfs parameter ——linux kernel use nfs Mode to load the root file system rootfs( Six )fio Use details be based on RK3399 PWM Drive development be based on STM32 Design of infrared obstacle avoidance car ( There is a code )vue obtain el-select Of the selected item label value Novices play hiss HI3520D Development board ( One , upgrade )Thread.getContextClassLoader And Thread.getClassLoader() difference [AndroidO] [RK3399] -- GPIO Drive and control mode about Bellman-Ford Personal understanding of algorithms git Pull the remote branch and switch to it